gpt4 book ai didi

c# - 使用 Unity 依赖注入(inject)注册 UrlHelper

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

如何使用 Unity(依赖注入(inject))注册 UrlHelper。我们需要该对象来构建域对象中的动态路径。

最佳答案

包装 UrlHelper 并使用所需的方法编写您的界面。

然后注册一个工厂类:

container.RegisterType<IUrlFactory, UrlFactory>();

界面:

public interface IUrlFactory
{
IUrlWrapper Create();
}

然后在实现中你可以做:

class UrlFactory : IUrlFactory
{
public IUrlWrapper Create()
{
var context = new HttpContextWrapper(HttpContext.Current);
var routeData = RouteTable.Routes.GetRouteData(context);
return new UrlWrapper(new UrlHelper(new RequestContext(context, routeData)));
}
}

当您想编写一个测试来模拟 url 时,您可以这样做(使用最小起订量):

var urlMock = new Mock<IUrlWrapper>();
urlMock.Setup(x => x.GetSubDomain()).Returns(string.Empty);

var urlFactoryMock = new Mock<IUrlFactory>();
urlFactoryMock.Setup(x => x.Create()).Returns(_urlMock.Object);

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

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