Unity Container InjectionConstructor - 无法将lambda表达式转换为'object []'类型,因为它不是委托类型

gue*_*eLE 4 unity-container

有谁知道如何解决Unity Container InjectionConstructor没有Func <string>的任何重载的事实?

this.unityContainer
  .RegisterType<IService1Client, Service1Client>()
  .Configure<InjectedMembers>()
  .ConfigureInjectionFor<Service1Client>(
    new InjectionConstructor(() => 
      this.unityContainer.Resolve<User>()
        .SelectedDepartment
        .ApplicationServerUrl
        .ToString()));
Run Code Online (Sandbox Code Playgroud)

干杯,

joe*_*net 5

您可以使用InjectionFactory.

this.unityContainer.RegisterType<IService1Client>(
  new InjectionFactory((ctr, type, name) =>
  {
    User user = this.unityContainer.Resolve<User>();
    string url = user.SelectedDepartment.ApplicationServerUrl.ToString();
    return new Service1Client(url);
  }));
Run Code Online (Sandbox Code Playgroud)