国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

動態(tài)代理的5模式使用示例和Mixin模式

2024-07-10 12:44:16
字體:
來源:轉載
供稿:網(wǎng)友

重量級的ORM和IOC產(chǎn)品離不開動態(tài)代理,作為開發(fā)人員,多數(shù)情況不用關注動態(tài)代理的內(nèi)部實現(xiàn)機制,但是了解其一般的規(guī)律和模式還是有必要的,比如:雖然你開發(fā)期間采用了POCO,因為開啟了動態(tài)代理,運行期間則不是POCO。本文簡單描述了5種代理生成模式和1種Mixin模式,最后給出一個示例。

代碼如下:
public interface IPlayable
    {
        void Play();
    }

    public class Animal : IPlayable
    {
        public virtual void Play()
        {
            Console.WriteLine("Animal.Play");
        }
    }

    public class Dog : Animal
    {
        public override void Play()
        {
            Console.WriteLine("Dog.Play");
        }
    }

    public interface IRunable
    {
        void Run();
    }

    public class RunAbility : IRunable
    {
        public void Run()
        {
            Console.WriteLine("RunAbility.Run");
        }
    }

    public class AnimalInterceptor : IInterceptor
    {
        public void Intercept(IInvocation invocation)
        {
            Console.WriteLine("Before AnimalInterceptor.Intercept");
            if (invocation.InvocationTarget != null)
            {
                invocation.Proceed();
            }
            Console.WriteLine("After AnimalInterceptor.Intercept");
        }
    }

第一種:ClassProxy

代碼如下:
{
                Console.WriteLine("/n*************ClassProxy*************/n");
                var generator = new ProxyGenerator();

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 金沙县| 视频| 丹寨县| 股票| 鄂温| 安庆市| 扎兰屯市| 宿迁市| 云浮市| 榆中县| 河北区| 城步| 南投市| 大名县| 合作市| 凤山市| 大关县| 龙海市| 嘉义市| 攀枝花市| 田东县| 游戏| 同江市| 梓潼县| 延长县| 文安县| 云安县| 枞阳县| 海安县| 绍兴市| 双辽市| 莲花县| 屯留县| 彭州市| 湘乡市| 阿鲁科尔沁旗| 巴林右旗| 个旧市| 疏勒县| 古田县| 邳州市|