本文共 921 字,大约阅读时间需要 3 分钟。
二、关键代码
[Export("Oracal")] public class OracalLogger : ILogger{ public void WriteLog(string message) { Console.WriteLine("Oracal Logger => {0}", message); }}
相应的导入代码为:
[Import("Oracal")]public OracalLogger OracalLogger { get; set; }
这里,属性的类型是OracalLogger
,而不是ILogger
。类型不匹配会导致导入失败。
[Export(typeof(ILogger))] public class TxtLogger : ILogger{ public void WriteLog(string message) { Console.WriteLine("Text Logger => {0}", message); }}
相应的导入代码为:
[Import(typeof(ILogger))]public ILogger TextLogger { get; set; }
在这种情况下,导内的类型必须与导出类型一致,否则无法注入成功。
[Export]public class XmlLogger : ILogger{ public void WriteLog(string message) { Console.WriteLine("Xml Logger => {0}", message); }}
此时,协议名为默认协议,类型与被修饰的类一致。相应的导入代码为:
[Import]public XmlLogger XmlLogger { get; set; }
注意,导入时必须确保属性的类型与导出类型完全一致,否则会导致导入失败。
三、相关资源
转载地址:http://uqviz.baihongyu.com/