可以"实施N次"的接口设计

kbt*_*tzr 0 c# oop interface

目前我正在使用通用接口来声明像这样的IoC依赖:

public interface IComposition<T>
{
  T Dependency { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但碰巧我的实现可能同时具有多个依赖项.

我知道这很荒谬,但只是让你们明白我需要的东西......让我说我多次实现界面来解决我的问题:

public class MyClass : IComposition<TypeA>, IComposition<TypeB>
{
  ...
}
Run Code Online (Sandbox Code Playgroud)

我相信使用IComposition<T1, T2, ...>ITypeXDependent每种类型的一个不是很好的选择.我的核心需要使用反射在运行时解决依赖关系.所以,这就是为什么我不通过构造函数传递依赖项.

有谁知道一些可以帮助我的技巧?

ang*_*son 5

我会使用构造函数参数而不是您当前的方案来设置依赖项:

public class MyClass
{
    public void MyClass(TypeA a, TypeB b)
    {
        ....
    }
}
Run Code Online (Sandbox Code Playgroud)