C#进阶系列
第三章 【C#进阶系列】【MEF框架(三)】
第二章 【C#进阶系列】【MEF框架(二)】
第一章 【C#进阶系列】【MEF框架(一)】
前言
在(一)已经对MEF作了基本的介绍,前面都是介绍如何导出类,这里针对MEF如何导出方法、属性作一些补充。
一、导出属性
直接看下面代码示例,和导出类没啥区别
namespace MEF_P1
{
public interface IBookService
{
string GetBookName();
}
[Export("ContractName_MathBook")]
public class MathBook : IBookService
{
//导出私有属性
[Export(typeof(string))]
private string _privateBookName = "Private MathBook BookName";
//导出公有属性
[Export(typeof(string))]
public string _publicBookName = "Public MathBook BookName";
public string GetBookName()
{
return "MathBook";
}
}
[Export("ContractName_ChineseBook")]
public class ChineseBook : IBookService
{
public string GetBookName()
{
return "ChineseBook";
}
}
class Program
{
//导入属性,这里不区分public还是private
[ImportMany]
public List<string> InputString {
get; set; }
public object Services_MathBook {
get; set; }
public object Services_ChineseBook {