私の C# プロジェクトには、2 つのサードパーティ DLL への参照があります。これは、ソース コードにアクセスできず、これら 2 つの DLL を変更または再コンパイルできないことを意味するため、重要です。
それらを dll A と dll B と呼びましょう。dll A は次のようになります。
namespace ThirdParty.Foo
{
public class Bar
{
...snip...
}
public class Something
{
public Bar MyProperty { get; set; }
}
}
dll B は次のようになります。
namespace ThirdParty.Foo
{
public class Bar
{
...snip...
}
public class SomethingElse
{
public Bar MyProperty { get; set; }
}
}
ご覧のとおり、これらは同じ名前空間を持ち、両方とも同じ名前のクラスを定義しています。私の C# コードには、両方の DLL への参照が必要です。参照でエイリアス プロパティを使用して、2 つの参照を区別できるようにします。また、C# ファイルの先頭でも使用extern alias firstDll
し ます。extern alias secondDll
ここまでは順調ですね。
Something.MyProperty
の型が firstDll.ThirdParty.Foo.Bar であり、の型が secondDll.ThirdParty.Foo.Bar であることは明らかですSomethingElse.MyProperty
が、何らかの理由で Visual Studio が混乱し、両方のプロパティの型を同じBar
クラスに解決します最初のDll.
VisualStudio に正しい型を「強制的に」解決させる方法はありますか?
編集: Visual Studio で発生するエラーは次のとおりです: タイプ 'ThirdParty.Foo.Bar [d:\MySolution\References\Second.dll]' を 'ThirpParty.Foo.Bar [d:\MySolution\References] に暗黙的に変換できません\First.dll]'