Как разрешить универсальный тип в Unity - PullRequest
2 голосов
/ 26 января 2012

Я пытаюсь разрешить универсальный тип через 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();    

Может кто-нибудь помочь?

спасибо

1 Ответ

0 голосов
/ 28 февраля 2014

Вы пытались зарегистрировать зависимость в коде? Это может помочь вам сузить проблему. Регистрация должна выглядеть так: container.RegisterType<ServiceActivityBase<InputDto,OutputDto>,TestActivity>(). Таким образом, вы будете знать, находится ли ваша проблема только в вашем XML-файле.

...