如何在Unity中解析泛型类型

本文关键字:泛型类型 Unity | 更新日期: 2023-09-27 18:21:35

我正试图通过Unity解析泛型类型,但遇到错误:{"给定的程序集名称或代码库无效。(HRESULT:0x80131047的异常)":null}。

我的代码和配置如下:

namespace Prj.Common.Workflow
{
    public class ServiceActivityBase<I, O> : CodeActivity, IServiceActivityBase   
    {
    }
}
namespace Prj.Services
{
    public sealed class TestActivity : ServiceActivityBase<InputDto, OutputDto>
    {
    }
}
namespace Prj.Dto
{
    public class InputDto {}
    public class OutputDto {}
}

每个名称空间都放置在与名称空间同名的单独组件中。我在web.config中有以下注册:

<register   type="Prj.Common.Workflow.ServiceActivityBase'2[[Prj.Dto.DajDetailDietetickejPotravinyVstupDto,Prj.Dto],[Prj.Dto.DajDetailDietetickejPotravinyVystupDto,Prj.Dto]], Prj.Common.Workflow"
mapTo="Prj.Services.TestActivity, Prj.Services"
name="TestActivity"
>
<constructor/>
<interceptor type="VirtualMethodInterceptor"/>
<policyInjection />
</register>      

我在加载配置时收到错误:

IUnityContainer container = new UnityContainer().LoadConfiguration();    

有人能帮忙吗?

感谢

如何在Unity中解析泛型类型

您是否尝试在代码中注册依赖项?这可能有助于缩小问题范围。注册应该是这样的:container.RegisterType<ServiceActivityBase<InputDto,OutputDto>,TestActivity>()。这样,您就可以知道问题是否只存在于XML文件中。