我有一个由代码生成器生成的部分类
public partial class PersonRepository: IPersonRepository
{
public string Method1(){...}
public string Method2(){...}
//...
}
我想扩展这个类,并能够使用依赖注入
我试过这种方式
public interface IPersonRepositoryExtended : IPersonRepository
{
public string Method3(){...}
}
public class PersonRepositoryExtended: PersonRepository, IPersonRepositoryExtended
{
public string Method3(){...}
//...
}
然后对于DI我将IPersonRepositoryExtended
映射到PersonRepositoryExtended
,有更好的方法吗?
我应该创建PersonRepository
的部分类,如果我这样做,接口映射如何工作?
答案 0 :(得分:2)
你快到了那里:
像您计划的那样创建扩展界面
public interface IPersonRepositoryExtended : IPersonRepository
{
string Method3();
}
然后继续PersonRepository
部分课程。不需要像以前那样扩展课程。
public partial class PersonRepository: IPersonRepositoryExtended
{
public string Method3(){...}
}
然后,您将在需要时注入扩展接口。
public class SomeClass {
public SomeClass(IPersonRepositoryExtended dependency) { ... }
}
映射位于IPersonRepositoryExtended
和PersonRepository
之间。
请记住,部分类需要属于同一个项目。