1
如何使用Unity註冊UrlHelper(依賴注入)。我們需要該對象來構造域對象中的動態路徑。使用Unity註冊UrlHelper依賴注入
如何使用Unity註冊UrlHelper(依賴注入)。我們需要該對象來構造域對象中的動態路徑。使用Unity註冊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)));
}
}
而當你想寫測試嘲笑的網址,你可以做這樣的事情(使用最小起訂量):
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);