0

这个问题类似于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 派生时,除了抛出异常之外,还有其他方法吗?

4

0 回答 0