using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
using System.ComponentModel.Composition;
using System.ComponentModel.Composition.Hosting;
using System.Reflection;
public interface IBookService
{
string BookName { get; set; }
string GetBookName();
}
#region
//[Export(typeof(IBookService))] //将类声明导出为IBookService接口类型
//[Export("契约名")] //默认的导出类型是object类型
[Export("MusicBook", typeof(IBookService))] //契约名
public class MusicBook : IBookService
{
public string BookName { get; set; }
public string GetBookName()
{
return "MusicBook";
}
}
[Export("MusicBook", typeof(IBookService))]
public class MathBook : IBookService
{
public string BookName { get; set; }
public string GetBookName()
CompositionContainer学习
最新推荐文章于 2022-11-22 19:45:00 发布
本文介绍了如何在ConsoleApplication1中使用CompositionContainer进行依赖注入。通过Export和ImportMany特性,实现了多个IBookService接口的导出和导入,例如MusicBook、MathBook和HistoryBook。在Main方法中,创建并实例化CompositionContainer,然后使用ComposeParts方法进行自动装配,最后遍历并打印出所有导入的BookService名称。
摘要由CSDN通过智能技术生成