gpt4 book ai didi

c# - 在使用 IoC 的 c#.Net 中,不使用构造函数直接将依赖项传递给方法是否可以?

转载 作者:行者123 更新时间:2023-11-30 16:54:31 25 4
gpt4 key购买 nike

我是 IoC 的新手,我很难理解是否可以将依赖项直接传递给方法?我正在使用 Unity IoC。

假设我有一个看起来像这样的类:

public class FtpCommon : IFtpCommon
{
private readonly IConfigSettings _config;

public FtpCommon(IConfigSettings config)
{
_config = config;
}

public string CombinePaths(string uri1, string uri2)
{
....
}

public string GetLocalFilteredFilePathsFull()
{
....
}
....
}

现在,在其中一种方法中,我需要使用对不同类的依赖,目前我是这样做的:

public List<FtpListItem> GetFtpFileListRecursive(IFtpClient ftp)
{
...
}

我将 ftp 实例直接传递给方法的原因是,此时的 ftp 实例已按照我的需要进行了配置。

但是我一直在阅读不同的文章,说所有依赖项都应该在构造函数中传递,但我不明白这种依赖项是否应该移动到类变量并在类变量中传递构造函数,或者那些类型的依赖关系好吗?我该怎么做?

有经验的人可以评论一下吗?

最佳答案

IoC 没有“规则”,作为一种通用模式,规定注入(inject)只能通过构造函数发生。

此外,https://unity.codeplex.com/州,

"The Unity Application Block (Unity) is a lightweight extensible dependency injection container with support for constructor, property, and method call injection."

所以继续你现在的样子......

关于c# - 在使用 IoC 的 c#.Net 中,不使用构造函数直接将依赖项传递给方法是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30411251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com