非常に単純な質問がありますが、以前にこの問題が発生したことはありません。
このコードを見てください:
interface IFoo
{
IBar MyBar { get; }
}
interface IBar
{
String Test { get; }
}
class Foo : IFoo
{
public Bar MyBar { get; set; }
}
class Bar : IBar
{
public String Test { get; set; }
}
問題は、Foo が IBar ではなく Bar を返すため、IFoo を実装していないことです。しかし、Bar は IBar を実装しているので問題はありません。私は何かが恋しいですか?
アプリケーションでクラス Foo を使用し、IFoo をソリューションの他の部分に公開したいと考えています。
これは回避策ですが、醜い解決策のようです:
class Foo : IFoo
{
public Bar MyBar { get; set; }
IBar IFoo.MyBar {
get { return this.MyBar; }
}
}
これは進むべき道ですか、それともより良い方法ですか?