.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
相关新闻>>
- 发表评论
-
- 最新评论 进入详细评论页>>
今日头条
更多>>您可能感兴趣的文章
- C#高级编程:使用XPath命名空间中的类[2]
- .Net插件框架的实现及分析(二)
- DCOM--高效率主从服务器程序的新概念
- 使用HttpWebRequest下载经过重定向的文件
- 让asp.net mvc的Action支持jQuery直接提交的javascript对
- ASP.ENT前台更改绑定数据的日期格式
- Add View -> Strongly-typed view ->Model Class
- .NET简谈设计模式之(装饰者模式性能问题?)
- .NET类库中发现设计模式:策略模式
- Asp.net MVC源码分析--UrlRoutingModule与Service location的



