0

我想定义一个实现某个接口的类型,但是我只会在运行时在代理中实现它。在这种情况下,我可以看到两个障碍:

1-使编译器忽略未实现的接口。2-使用以下描述使 CLR 忽略(或至少延迟)TypeLoadException:“来自程序集 SOMEASSEMBLY 的 SOMETYPE 类型中的方法 SOMEMETHOD 没有实现。”

这样的事情可能吗?

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 回答