1
嗨 我在导入方案例如一些问题:MEF导入方案
[Export(typeof(IICon))]
public class WriteInputData : IICon
{
[Import(typeof(IIOWriter))]
public IIOWriter IOWriter { get; set; }
public object Input { get; set; }
public void Process()
{
IOWriter.Write(Input);
}
}
然后我哈威两个类实现接口IIOWriter喜欢:
[Export(typeof(IIOWriter))]
public class FileWriter : IIOWriter
{
public string FilePath { get; set; }
public void Write(object data)
{
if (string.IsNullOrEmpty(FilePath))
FilePath = @"c:\test.txt";
var fl = new StreamWriter(FilePath, true);
fl.Write((string)data);
fl.Flush();
fl.Close();
}
public string Name
{
get { return "FileWriter"; }
}
}
[Export(typeof(IIOWriter))]
public class ConsoleWrite : IIOWriter
{
public void Write(object data)
{
Console.WriteLine((string)data);
}
public string Name
{
get { return "ConsoleWrite"; }
}
}
我怎样才能让这样的用户使他可以改变它在运行时,所以例如当他在ListBox FileWriter类型选择比WriteInputData中的IIOWriter将被注入FileWriter结尾所以一.. 对不起,我的英语不好。
+1,但没有必要显式调用容器来使用元数据。您只需导入IEnumerable>`。 –
2010-11-28 11:27:52