`
visualcatsharp
  • 浏览: 39979 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

一个不错的开源动态代理类库

    博客分类:
  • .Net
阅读更多
从codeproject里发现了一个非常不错的.net动态代理类库,有一个很好的特点是不仅支持接口代理,还支持非接口代理,关键是开源的。而castle是否开源就不太清楚了。
以下是我在事务处理中的应用。
public class DbTransactionProxy : IInterceptor
    {
        Object target = null;
        

        private DbTransactionProxy(Object target)
        {
            this.target = target;
        }

        public static T NewInstance<T>(Object target)
        {
            return new ProxyFactory().CreateProxy<T>(new DbTransactionProxy(target));
        }

        #region IInterceptor 成员

        object IInterceptor.Intercept(InvocationInfo info)
        {
            Object[] attrs = info.TargetMethod.GetCustomAttributes(typeof(TransactionAttribute), true);
            object ret = null;
            if (attrs != null && attrs.Length > 0)
            {
                TransactionAttribute trans = (TransactionAttribute)attrs[0];
                if (trans.IsTransaction)
                {
                    //开始事务处理
                    try
                    {
                        SessinoUtil.BeginTransaction(trans.ConnectionString);
                        ret = info.TargetMethod.Invoke(target, info.Arguments);
                        SessinoUtil.CommitTransaction(trans.ConnectionString);
                    }
                    catch(Exception ex)
                    {
                        SessinoUtil.RollbackTransaction(trans.ConnectionString);
                    }
                }
            }
            else
            {
                ret = info.TargetMethod.Invoke(target, info.Arguments);
            }
            return ret;
        }

        #endregion
    }


类似的,可以实现AOP缓存一类的应用,这里不多述
分享到:
评论
1 楼 sea7 2008-11-12  
visualcatsharp 写道

而castle是否开源就不太清楚了。


castle是开源的

相关推荐

    java开源包6

    BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...

    java开源包9

    BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...

    java开源包8

    BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...

    java开源包10

    BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...

    java开源包4

    BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...

    JAVA上百实例源码以及开源项目

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    69.[开源][安卓][网络安全]NetCipher-master

    69.[开源][安卓][网络安全]NetCipher-master OnionKit是一个可以通过提供多种路径来提高移动应用网络安全的Android库项目。 该库具体提供: ...OrbotHelper:一个支持Orbot:Tor for Android应用集成的工具类。

    java开源包1

    BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...

    java开源包2

    BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...

    java开源包3

    BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...

    java开源包5

    BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...

    java开源包11

    BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...

    java开源包7

    BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...

    java开源包101

    BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...

    JAVA上百实例源码以及开源项目源代码

    Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系...

    Java资源包01

    BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加...

    flask-vue-xcx-Flask Vue 小程序 全栈开源电商生态系统.zip

    先在mysql中新建个库 2.安装依然包 pip install -r requirements.txt 3.在库中导入data.sql或直接运行app.py 4.打开小程序则需要你有appid项目简介电商整套系统 pc商家管理后台 小程序客户端小程序端介绍1.商品...

    nopCommerce_2.65_Source开源网上商城全源代码

    nopcommerce是国外的一个高质量的开源b2c网站系统,基于EntityFramework4.0和MVC3.0,使用Razor模板引擎,有很强的插件机制,包括支付配送功能都是通过插件来实现的,基于xml的多语言版本,非常灵活的语言切换功能,...

    Activity代理框架AyoActivityNoManifest.zip

    这个库提供了:一个轻量级的Activity代理框架(ActivityAttacher,使用方式基本和Activity一样),目的在于不必在Manifest反复声明Activity同时提供了一个轻量级的Bundle机制(SimpleBundle,使用方式基本和Bundle...

Global site tag (gtag.js) - Google Analytics