gpt4 book ai didi

c# - 使用 UrlHelper 进行依赖注入(inject)

转载 作者:太空宇宙 更新时间:2023-11-03 22:05:10 25 4
gpt4 key购买 nike

我在我的 Web 应用程序中使用 Ninject,作为其中的一部分,我需要在驻留在单独程序集中的 UrlHelper 扩展方法中进行一些注入(inject)。我什至无法获得对内核的静态引用,因为显然库程序集不能(也不应该)引用我的 Web 应用程序。我知道静态类不能很好地与 DI 一起工作,但是因为我需要使用 UrlHelper,所以事情变得有点复杂。我怎么能重新设计这个?如果您需要查看任何代码或需要更多信息,请告诉我。

最佳答案

您是否考虑将非静态类作为静态 UrlHelper 类的 DI 友好包装器?

public class DynamicUrlHelper
{
private readonly ISomeDependency dep;
public DynamicUrlHelper(ISomeDependency dep)
{
this.dep = dep;
}
public Uri DoMagic(Uri uri)
{
return uri.DoMagic(this.dep);
}
}
public interface ISomeDependency
{
}
public static class UrlHelper
{
public static Uri DoMagic(this Uri uri, ISomeDependency dep)
{
// do it!
return uri;
}
}

您可以将必要的值注入(inject) DynamicUrlHelper 并在需要的任何地方注入(inject) DynamicUrlHelper

关于c# - 使用 UrlHelper 进行依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8704815/

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