gpt4 book ai didi

asp.net-mvc - 在扩展方法中使用 IoC

转载 作者:行者123 更新时间:2023-12-03 12:10:05 26 4
gpt4 key购买 nike

我正在开发一个 ASP MVC 3 应用程序,并且正在编写一个自定义 html 帮助程序。它没有什么特别或非常复杂的,但它需要一个来自结构映射的接口(interface)实例。我知道我可以简单地从方法内部调用结构映射的对象工厂,但由于应用程序的其余部分使用 IoC 而不是服务位置,我想保持这种方式。

有没有办法从内部和asp net mvc应用程序将接口(interface)注入(inject)扩展方法?

更新

我正在做的一个例子可能会有所帮助:

public static class ShowUrl
{
public static string ForShow(this UrlHelper url, int showId)
{
var service = ObjectFactory.GetInstance<IPerformanceService>();

var showName = service.GetPerformanceTitle(showId);

return url.Action(MVC.Performance.Details(showId, showName.ToFriendlyUrl()));
}
}

这是这样使用的:
<a href='<%= Url.ForShow(1)%>'>

本质上,我正在尝试使用来自实体 ID 的 slug 构建一个 URL。也许我只是在以一种非常愚蠢的方式来解决这个问题。

最佳答案

无法将依赖项注入(inject)扩展方法。

对于 ASP.NET MVC 帮助程序,您将不得不做某种服务位置 - 是否用某种抽象来掩埋它取决于您。

关于asp.net-mvc - 在扩展方法中使用 IoC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6598397/

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