VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • C#教程之C# .NET 逻辑层的框架设计(2)

; msglist.Add(msg); top++; return result; } public Msg getResult() { return this.msglist[top]; } } }
复制代码

最后是实现过滤器部分,过滤器也是使用委托,将委托里面的方法放在一个池中,使用字典,将他们对应,在使用特性时候,就可以将对应方法的key写在特性上就可以了。

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Bll
{
    public class FilterAttribute:Attribute
    {
        public FilterAttribute(string key)
        {
            Action fun = FilterPool.DelegatePool[key];
            if (fun != null)
                fun();
        }
    }
}
复制代码

最后一个Bllhelper类,里面存放静态方法,用于创建对象,UI层不能访问CreateInstance,只能通过它;一个特殊的静态函数,就是在应用开始时候将需要的过滤器填充到里面。

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Bll
{
    public class BllHelper
    {
        public static TClass createInstance<TClass>()
            where TClass : class,new()
        {
            return CreateInstance.createInstance<TClass>();
        }
        public static TClass createInstance<TClass>(object[] args)
            where TClass : class
        {
            return CreateInstance.createInstance<TClass>(args);
        }
        public static TBaseClass createInstance<TBaseClass, TSubClass>()
            where TSubClass : class,new()
            where TBaseClass : class
        {
            return CreateInstance.createInstance<TBaseClass, TSubClass>();
        }
        public static TBaseClass createInstance<TBaseClass, TSubClass>(object[] args)
            where TBaseClass : class
            where TSubClass : class
        {
            return CreateInstance.createInstance<TBaseClass, TSubClass>(args);
        }

        public static void setFilter(string key,Action fun)
        {
            FilterPool.DelegatePool.Add(key, fun);
        }

        public static IComMethod getMethod<T>()
            where T:class,new()
        {
            return createInstance<IComMethod, T>();
        }
    }
}
复制代码

 

好了,基本思路就这样。

 项目地址链接:http://files.cnblogs.com/files/jnxzk/Work18.rar

不过,这个项目还没完工,因为还有好多没有考虑进去。是一时想法一时写的代码,所以就没有注释。项目能够正常使用,如果大家有什么不理解的地方,或者不足,可以下边评论,谢谢大家~~


相关教程
关于我们--广告服务--免责声明--本站帮助-友情链接--版权声明--联系我们       黑ICP备07002182号