.Net插件框架的实现及分析(二)

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 07:58 点击:

呵,很久之前发表了 .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

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • 浅析.NET下XML数据访问新机制
    • asp.net 面试+笔试题目第1/2页
    • C# 邮件地址是否合法的验证
    • asp.net 设置GridView的选中行的实现代码
    • C#高级编程:数据库连接[1]
    • 经典C++程序1
    • IIS 自动回收导致后台定时器失效的问题解决
    • ASP.NET&#160;GridView列表代码示例
    • Asp.net MVC源码分析--Action Filter的链式调用
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1