在WebAPI的早期版本中,我曾经实现如下所示的Unity容器依赖注入
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
//I want to implement below in Azure Function V2
var container = new UnityContainer();
container.RegisterType<IDeviceRepository, DeviceRepository>(new HierarchicalLifetimeManager());
container.RegisterType<IFilterRepository, FilterRepository>(new HierarchicalLifetimeManager());
container.RegisterType<INEORepository, NEORepository>(new HierarchicalLifetimeManager());
config.DependencyResolver = new UnityResolver(container);
}
}
如何在Azure Function V2中实现以上代码。
我浏览了几篇在线文章,但没有找到适当的解决方案。
请提出建议。
答案 0 :(得分:0)
我已经使用以下代码在Azure函数中实现DI。
public class GenericDependencyInjection
{
private static readonly UnityContainer UnityContainer = new UnityContainer();
public GenericDependencyInjection()
{
try
{
UnityContainer.RegisterType<IOperations,Operations>(new ContainerControlledLifetimeManager());
}
catch (Exception ex)
{
throw ;
}
}
public T Retrieve<T>()
{
return UnityContainer.Resolve<T>();
}
}
我通过在其他类中传递以下通用类型来调用Retrieve方法
var data = new GenericDependencyInjection().Retrieve<EmpDetails>();
return await data.UpdateDetails(EmpId, Name); //calling class EmpDetails method