0

特定のインターフェイスを実装する型を定義したいのですが、実行時にプロキシでのみ実装します。このシナリオには 2 つの障害があります。

1-コンパイラが実装されていないインターフェイスを無視するようにします。2-CLR が TypeLoadException を無視する (または少なくとも遅らせる) ようにします。

このようなことは可能ですか?

4

2 に答える 2

1

これを行う必要がある場合は、インターフェイスの何らかの基本的/空の実装を提供してコンパイラを満足させるクラスを作成し、そのクラスから降りて実際の実装を提供します。

ハックすぎると考える他の方法-私が悪用していた動作が将来変更/修正されないことに不安を感じます。

于 2010-05-12T20:04:12.323 に答える
0

型がインターフェイスを継承する場合、その型からすべてのメンバーを実装する必要があります。私が考えることができる最も近いことは、NotImplementedExceptionをスローすることです。

public interface IFoo
{
  void DoSomething();
}

public class Foo : IFoo
{
  void IFoo.DoSomething()
  {
    throw new NotImplementedException();
  }
}

public class FooProxy : Foo
{
  public void DoSomething()
  {
    // Do something meaningful here.
  }
}
于 2010-05-12T20:45:00.510 に答える