.Net插件框架的实现及分析(二)
呵,很久之前发表了 .Net插件框架的实现及分析(一) ,只是一直没在此接上,只是在我自己的代码部落里更新了,现在也加上吧:
话接上回, 让我们来继续分析下这个插件框架如何实现吧。既然是插件,就必须得动态加载,只需将编译好的插件DLL文件放到指定的插件目录下就可以使用了,这样就有一个动态获取插件的过程,我们此例中为文章内容格式化插件,当然就不只一个格式化插件在同一时间里使用了,所以需先创建的一个集合来收集这些插件:
ProviderCollector.cs 文件:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CoderBlog.Core
{
/// <summary>
/// 实现一个泛型插件 Provider 集合
/// </summary>
/// <typeparam name="T">集合类型.</typeparam>
public class ProviderCollector<T>
{
private List<T> list;
/// <summary>
/// 初始化新的实体
/// </summary>
public ProviderCollector()
{
list = new List<T>(3);
}
/// <summary>
/// 添加一个 Provider 到集合
/// </summary>
/// <param name="provider">需添加的 Provider.</param>
public void AddProvider(T provider)
{
lock (this)
{
list.Add(provider);
}
}
/// <summary>
/// 从集合里移除一个 Provider
/// </summary>
/// <param name="provider">需移除的 Provider</param>
public void RemoveProvider(T provider)
{
lock (this)
{
list.Remove(provider);
}
}
/// <summary>
/// 获取所有的 Providers (返回数组).
/// </summary>
public T[] AllProviders
{
get
{
lock (this)
{
&nbs
相关新闻>>
- 发表评论
-
- 最新评论 更多>>