c#实现缺少程序集的接口

本文关键字:接口 程序集 实现 | 更新日期: 2023-09-27 18:15:57

我有三个程序集。一个主可执行文件,一个公共库和一个扩展。在扩展中,我需要实现来自公共程序集的某个接口,以便将类注册为静态Kernel类中的服务。

唯一的问题是,我无法访问实现接口所需的一些类型。例如,接口A有一个返回类型B的方法DoWork()。扩展程序集的引用中没有B类型,因此无法添加。

是否有一种方法来实现接口,使方法抛出NotImplementedException,并有扩展程序集编译?

注意,主程序集需要引用扩展来注册它,所以我不能在扩展中引用主程序集并在主程序集中声明类型。

c#实现缺少程序集的接口

这是不可能的。你必须实现接口的所有成员,要做到这一点,你需要引用这些成员的所有返回类型和参数类型。

注意,主程序集需要引用扩展才能注册它,所以我不能在扩展中引用主程序集并在主类型中声明类型。

如何在扩展程序集中添加对外部库的引用?我觉得这是你唯一的选择。我认为扩展将与主组装部署。由于主程序集没有外部库就不能正常工作,因此您将拥有所需的一切。