仅允许公共接口的内部实现

时间:2013-04-12 18:42:17

标签: c# .net inheritance interface

这个问题与Can I make a type "sealed except for internal types"类似,但是使用接口而不是类。

我想用类似的东西创建一个库:

public class SomeClass {
  ISupporter Supporter {get; set;}
}

public interface ISupporter {/*Some public methods*/}

internal interface ISupporterInternal {/*Some secret methods*/}

public class SupporterA : ISupporterInternal  {/*Includes some explicit interface impls of ISupporterInternal*/}

public class SupporterB : ISupporterInternal  {/*Includes some explicit interface impls of ISupporterInternal*/}

库的用户应该能够为SomeClass的实例设置一个支持者对象。用户还应该能够使用ISupporter中的方法,但我不希望用户创建自己的ISupporter实现,并让他分配这些实现的实例。

当指定的支持者的类型不是从ISupporterInternal派生时,除了抛出异常之外还有什么方法。

0 个答案:

没有答案