웹 API 컨트롤러가 있고 종속성을 해결하기 위해 Unity.WebAPI를 사용하고 있습니다. 내 Bootstrapper.cs 코드,Unity Container를 사용하여 웹 API의 종속성 종속성을 해결하려면 어떻게해야합니까?
public static class Bootstrapper
{
/// <summary>
/// Public method to initialise UnityContainer.
/// </summary>
public static void Initialise()
{
var container = BuildUnityContainer();
DependencyResolver.SetResolver(new UnityDependencyResolver(container));
// register dependency resolver for WebAPI RC
GlobalConfiguration.Configuration.DependencyResolver = new Unity.WebApi.UnityDependencyResolver(container);
}
/// <summary>
/// Register built in types.
/// </summary>
/// <returns></returns>
private static IUnityContainer BuildUnityContainer()
{
var container = new UnityContainer();
container.RegisterType<IUserService, UserService>().RegisterType<UnitOfWork>(new HierarchicalLifetimeManager());
return container;
}
}
이 내 컨트롤러 코드는, 내 UsersController 내 UserService를 해결,
private readonly IUserService _userService;
/// <summary>
/// Public constructor to initialize user service instance
/// </summary>
/// <param name="userService"></param>
/// <param name="tokenService"> </param>
public UsersController(IUserService userService)
{
_userService = userService;
}
이제
내 UserService는 다른 클래스에 따라 가정은 직원과 요구 다음 말입니다 새로운 Employee() 인스턴스, 즉 UserService 인스턴스가 필요합니다. UserService에서이 새 Employee() 클래스의 종속성을 어떻게 해결할 수 있습니까? 또한 Employee 클래스는 인터페이스를 구현하지 않습니다.
더 이상의 설명이 필요하면 답장을 보내주십시오. 나는 그 질문에 분명히 희망한다.
Employee 클래스의 이름으로 혼동하지 마십시오. 원하는 모든 클래스의 XYZ.All을 원할 수 있습니다. UserService가 인스턴스화 될 때 UserService가 종속 된 XYZ 클래스도 인스턴스화됩니다. 암호? –
'IUserService'등록과 마찬가지로 컨테이너에 등록해야합니다. – Maarten