Мне кажется, что все регистрации интерфейса определены правильно, но я получаю исключение при вызове
container = builder.Build();
Исключение:
'Common.RpcServer`2 [Logic.Engine, Messages.Serializer] '
нельзя назначить для службы
' Common.IRpcServer`2 [[
Services.IEngine, Contracts, Version = 1.0.0.0, Культура= нейтральный, PublicKeyToken = null], [Messages.ISerializer, Contracts, версия = 1.0.0.0, культура = нейтральный, PublicKeyToken = null]] '.
У меня очень простой регистрационный код для IEngine и ISerializer (одна и ни одна зависимость соответственно).
RpcServer немного сложнее, но все его зависимости выглядят нормально.
builder.Register(c =>
new RpcServer<Engine, Serializer>(
c.Resolve<ISubscription>(),
c.Resolve<IService>() as Engine,
c.Resolve<ISerializer>() as Serializer)
).As<IRpcServer<IService, ISerializer>>();
Должен ли я быть обеспокоен перечислением версий в исключении или вложением квадратных скобок?
RpcServer`2 [Logic.Engine, Messages.Serializer]
против
IRpcServer`2 [[Services.IEngine], [Messages.ISerializer]]
Что-нибудь еще, что я должен искать, чтобы диагностировать это?