【发布时间】:2021-06-13 22:50:14
【问题描述】:
使用依赖注入,您可以拥有一个表示不同类的相同接口,因为类实现可以按照绑定阶段的绑定阶段定义的方式绑定到依赖容器。我的问题是,一旦完成各自的绑定,如果实现是单一行为,是否有机会将接口作为组件添加到游戏对象。
我为什么要这样做的故事很长,所以可以假设刚出现的必要性:)。
找到一些伪代码以便更好地理解:
public interface IFoo {
//...
}
public class FooIplementtation1: MonoBehaviour {
//....
}
public class FooIplementtation2: MonoBehaviour {
//....
}
if (someCondition) {
Container.Bind<IFoo >().To<FooIplementtation1>();
} else {
Container.Bind<IFoo >().To<FooIplementtation2>()
}
我打算做的是:
//Error. Interface type cannot be added as component.
someTransform.gameObject.AddComponent<IFoo>();
但我得到了错误:
IFoo 类型不能用作泛型或方法 GameObject.AddComponent
() 中的类型参数“T”。
方法签名是:
public T AddComponent<T>() where T : Component;
Si 我试图让我的接口继承自Monobehaviour 并形成Component,但没有奏效。
知道这是否可行,如果可行,怎么做?
【问题讨论】:
标签: c# unity3d dependency-injection interface components