使用UrlHelper进行依赖注入
本文关键字:依赖 注入 UrlHelper 使用 | 更新日期: 2023-09-27 18:19:11
我在我的web应用程序中使用Ninject,作为其中的一部分,我需要在UrlHelper扩展方法中进行一些注入,该方法驻留在单独的程序集中。我甚至无法获得对内核的静态引用,因为显然库程序集不能(也不应该)引用我的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;
}
}
你可以注入必要的值到DynamicUrlHelper和注入DynamicUrlHelper任何需要的地方。