共通、データ、ビジネスの 3 つの層を持つソリューションがあります。
共通レイヤーは、他のレイヤーによって参照および使用されるオブジェクトを定義します。データ レイヤーにはデータ アクセス コードが含まれ、ビジネス レイヤーにはビジネス ロジックが含まれます。各レイヤーには複数のプロジェクトが含まれています。
データ レイヤーとビジネス レイヤーは、共通レイヤーのオブジェクトをパラメーターとして持つ WCF サービスを公開します。データ レイヤーとビジネス レイヤーの両方が、プロジェクト参照を介して共通レイヤーを直接参照します。
ビジネス層は、サービス参照を介してデータ層を参照します。単一のビジネス レイヤー プロジェクトにデータ レイヤー サービスへの複数の参照があり、各データ レイヤー サービスが共通レイヤーから同じオブジェクトを使用するため、サービス参照は「参照されたアセンブリで型を再利用する」に設定されます。
ビジネス層の単体テストを作成していますが、次のようなエラーが継続的に発生します: Common.ClassName 型の値を Common.ClassName に変換できません。タイプの不一致は、ファイル参照とアセンブリ Common へのプロジェクト参照が混在していることが原因である可能性があります。ファイル参照をプロジェクト参照に置き換えてみてください。
これはファイル参照ではなく、間違いなくプロジェクト参照です。ここを見るとこのアイテムが見えます
別のアセンブリで定義された型にアクセスするには、Visual Basic コンパイラがそのアセンブリへの参照を持っている必要があります。これは、プロジェクト間で循環参照を引き起こさない単一の明確な参照である必要があります。
私が知る限り、循環参照がないため、このエラーメッセージを引き起こしている可能性のある他の問題や、サービス参照の更新をクリックして今回はうまくいくことを期待して時間を浪費するのを防ぐにはどうすればよいですか?
このアーキテクチャについて私が選択することはできないことに注意してください。これは、ソフトウェア アーキテクトによって課せられます。
環境は Windows 8 と Visual Studio 2012 です。