私には2つの方法があります:
public void WriteRecord(string collectionName, IDatabaseRecord databaseRecord)
public void WriteRecord(string collectionName, BsonDocument bsonDocument)
そして私はそれらを私のインターフェースに含めます:
void WriteRecord(string collectionName, BsonDocument bsonDocument);
void WriteRecord(string collectionName, IDatabaseRecord databaseRecord);
それから私が電話したとき。
_databaseClient.WriteRecord(Collections.Tracking, workflowTrackingRecord);
ここで、workflowTrackingRecordのタイプはWorkflowInternalTrackingRecord : IDatabaseRecord
上記の行でこのコンパイル エラーが発生するため、コードが 2 番目のメソッド ( BsonDocumentを使用するメソッド) を呼び出そうとしていることがわかります。
「タイプ 'MongoDB.Bson.BsonDocument' は、参照されていないアセンブリで定義されています。アセンブリ 'MongoDB.Bson... への参照を追加する必要があります...」
外すと
void WriteRecord(string collectionName, IDatabaseRecord databaseRecord);
インターフェースから
_databaseClient.WriteRecord(Collections.Tracking, workflowTrackingRecord);
正常に動作します。
コンパイラが間違ったメソッドを指しているのはなぜですか。決定するためにどのような基準を使用していますか?