<分区>
抱歉,标题含糊不清,但我不确定如何措辞。
我正在寻找关于以下是否是注入(inject)对象的不良用法的任何想法。我在我的应用程序中设置了一个 IOC 容器(我使用的是 Unity,但我认为这并不重要)。我想知道这是否是一种不好的做法,或者是否存在从注入(inject)的接口(interface)实现中在构造函数中设置变量而不将注入(inject)的实现设置为私有(private)变量的问题。
在下面的示例中,injectedClass
被我的 IOC 容器注入(inject)到构造函数中。通常,我会将 injectedClass
设置为 IInjectedClass
的私有(private)实例,但由于我只打算用它来设置单个变量,所以我只是将变量设置为它在构造函数中然后忘记注入(inject)的项目。
public class SomeClass
{
private string _someVariable;
public SomeClass(IInjectedClass injectedClass)
{
_someVariable = injectedClass.GetSomeString();
}
public void SomeMethod()
{
Console.WriteLine(_someVariable);
}
}
有什么理由认为上面的代码是不好的做法吗?或者唯一反对它的论点是如果我想再次使用 injectedClass,它将不可用?
感谢您的任何想法