我正在尝试使用Unity Configuration向类属性添加依赖项,并且我尝试注入的类型也是通用的.
我有界面
public interface ISendMessage
{
void Send(string contact, string message);
}
Run Code Online (Sandbox Code Playgroud)
类
public class EmailService : ISendMessage
{
public void Send(string contact, string message)
{
// do
}
}
Run Code Online (Sandbox Code Playgroud)
类
public class MessageService<T> where T : ISendMessage
{
}
Run Code Online (Sandbox Code Playgroud)
我尝试通过构造函数注入在其他类中使用它
public MyService(MessageService<ISendMessage> messageService)
{
}
Run Code Online (Sandbox Code Playgroud)
我怎么注射MessageService<EmailService>而不是MessageService<ISendMessage>?
我试着通过app.config来做
<alias alias="MessageService'1" type="MyNamespace.MessageService'1, MyAssembly" />
<alias alias="EmailMessageService'1" type="MyNamespace.MessageService'1[[MyNamespace.EmailService, MyAssembly]], MyAssembly" />
Run Code Online (Sandbox Code Playgroud)
我收到错误
无法解析类型名称或别名MessageService'1.请检查配置文件并验证此类型名称.
我如何通过MessageService<T>实现参数MessageService<EmailService>?
谢谢
更新
我将我的课修改为以下内容:
public class MessageService<T> where T : …Run Code Online (Sandbox Code Playgroud)