2

私には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);

正常に動作します。

コンパイラが間違ったメソッドを指しているのはなぜですか。決定するためにどのような基準を使用していますか?

4

1 に答える 1