当前位置:首页 > 日记 > 正文

动态代理模式和混合模式的使用实例5

动态代理模式和混合模式的使用实例5
领先的ORM和国际奥委会的产品离不开动态代理,作为开发商,最不重视内部的动态代理机制,而是理解和模式是必要的,一般的规则,例如:虽然你开发使用POCO期间,由于开放的动态代理,运行期间没有少。在这纸,5代理的生成模式和1混合模式的简要介绍,并最后给出了一个实例。

复制代码代码如下所示:
iplayable公共接口
{
无效播放();
}

动物类:iplayable
{
公共虚拟无效播放()
{
console.writeline(动物玩。);
}
}

公犬类:动物
{
公共覆盖无效播放()
{
console.writeline(狗玩。);
}
}

irunable公共接口
{
运行();
}

公共课:irunable runability
{
公共空白运行()
{
console.writeline(runability。跑);
}
}

公共课animalinterceptor:iinterceptor
{
公共无效拦截(iinvocation调用)
{
console.writeline(前animalinterceptor。拦截);
如果(invocation.invocationtarget!= null)
{
调用。继续();
}
console.writeline(后animalinterceptor。拦截);
}
}
第一:classproxy

复制代码代码如下所示:
{
console.writeline(************* classproxy ************* ;
无功发生器=新proxygenerator();
VaR的动物= generator.createclassproxy(新animalinterceptor());
动物(游戏);

console.writeline(animal.gettype());
console.writeline(animal.gettype()。BaseType);

无功compositefield = animal.gettype()。GetField(__target );
console.writeline(compositefield);

foreach(在animal.gettype VAR接口型()GetInterfaces()))
{
Console.WriteLine (interfaceType);
}
}
第二种:classproxywithtarget

复制代码代码如下所示:
{
console.writeline(************* classproxywithtarget ************* ;
无功发生器=新proxygenerator();
VaR的动物= generator.createclassproxywithtarget(新狗()、新AnimalInterceptor()));
动物(游戏);

console.writeline(animal.gettype());
console.writeline(animal.gettype()。BaseType);

无功compositefield = animal.gettype()。GetField(__target );
console.writeline(compositefield);

foreach(在animal.gettype VAR接口型()GetInterfaces()))
{
console.writeline(接口型);
}
}

第三种:interfaceproxywithouttarget

复制代码代码如下所示:
{
console.writeline(************* interfaceproxywithouttarget ************* ;
无功发生器=新proxygenerator();
VaR的动物= generator.createinterfaceproxywithouttarget(新animalinterceptor());
动物(游戏);

console.writeline(animal.gettype());
console.writeline(animal.gettype()。BaseType);

无功compositefield = animal.gettype()。GetField(__target );
console.writeline(compositefield);

foreach(在animal.gettype VAR接口型()GetInterfaces()))
{
console.writeline(接口型);
}
}

第四种:interfaceproxywithtarget

复制代码代码如下所示:
{
console.writeline(************* interfaceproxywithtarget ************* ;
无功发生器=新proxygenerator();
VaR的动物= generator.createinterfaceproxywithtarget(新狗()、新AnimalInterceptor()));
动物(游戏);

console.writeline(animal.gettype());
console.writeline(animal.gettype()。BaseType);

无功compositefield = animal.gettype()。GetField(__target );
console.writeline(compositefield);

foreach(在animal.gettype VAR接口型()GetInterfaces()))
{
console.writeline(接口型);
}
}

第五种:interfaceproxywithtargetinterface

复制代码代码如下所示:
{
console.writeline(************* interfaceproxywithtargetinterface ************* ;
无功发生器=新proxygenerator();
VaR的动物= generator.createinterfaceproxywithtargetinterface(新狗()、新AnimalInterceptor()));
动物(游戏);

console.writeline(animal.gettype());
console.writeline(animal.gettype()。BaseType);

无功compositefield = animal.gettype()。GetField(__target );
console.writeline(compositefield);

foreach(在animal.gettype VAR接口型()GetInterfaces()))
{
console.writeline(接口型);
}
}

混合模式

复制代码代码如下所示:
{
console.writeline(************* mixin ************* ;
无功发生器=新proxygenerator();
VaR选项=新proxygenerationoptions();
Options.AddMixinInstance(新runability());
VaR的动物= generator.createclassproxy(选项,新的AnimalInterceptor());
动物(游戏);
(动物irunable)Run();

console.writeline(animal.gettype());
console.writeline(animal.gettype()。BaseType);

无功compositefield = animal.gettype()。GetField(__target );
console.writeline(compositefield);

foreach(在animal.gettype VAR场()GetFields()))
{
如果(field.name.startswith(__mixin ))
{
console.writeline(场);
}
}

foreach(在animal.gettype VAR接口型()GetInterfaces()))
{
console.writeline(接口型);
}
}

相关文章

水果女孩PS合成体骨折照片特效教程

水果女孩PS合成体骨折照片特效教程

照片,教程,骨折,特效,水果,本教程是向朋友介绍如何使用PS合成水果分解水果照片特效。本教程制作的特效非常有创意,难度不大。 本教程向您展示如何使用PS合成照片破损水果女孩特殊效果的方法,主要阐述人物的合成及变形影响生产。效果图是很有…

jQuery方法来确定对象是否存在

jQuery方法来确定对象是否存在

对象,方法来,是否存在,电脑软件,jQuery,本文的示例介绍了jQuery是否能够判断对象是否存在的方法: 一、传统的javascript编写方法 obj = document.getelementbyid(someid ); 如果(obj){ obj.innertext(嗨); } 在jQuery,var obj = $(# ID)。无论是否存在控制,…

烟花画一个精致的PC显示图标

烟花画一个精致的PC显示图标

图标,显示,画一,烟花,精致,本教程是介绍你绘制一个精致的PC显示图标过程与烟花爆竹。绘图方法比较简单,使PC图标非常漂亮,建议大家过来看看,希望对您有所帮助。 本教程是介绍你绘制一个精致的PC显示图标过程与烟花爆竹。绘图方法比较简单,使PC…

对fs.createwritestream方法在Node

对fs.createwritestream方法在Node

使用说明,方法,电脑软件,fs,createwritestream,方法显示: 返回一个writestream(输出流)的对象(可写流)。 Grammar: 复制代码代码如下所示: Fs.createWriteStream (path, {options}) 由于此方法属于fs模块,因此需要在使用之前引入FS模块(var FS =…

烟花制作美丽透明苹果按钮

烟花制作美丽透明苹果按钮

透明,烟花,按钮,美丽,电脑软件,本教程是向您介绍的方法,使美丽和透明的苹果按钮,通过烟花爆竹。方法很简单。非常适合初学者学习和转发,希望能对你有所帮助。 本教程是向您介绍的方法,使美丽和透明的苹果按钮,通过烟花爆竹。方法很简单。很适合…

PS图象处理软件不能编辑解决方案打

PS图象处理软件不能编辑解决方案打

解决方案,图象,处理软件,编辑,电脑软件,什么不打开PNG图片的PS图象处理软件ps可以打开PNG格式的图片,但不能做任何编辑,图片已经锁定,但它不能解锁,应该怎么办下面分享PNG图片解锁教程,需要的朋友可以参考下。 什么不打开PNG图片的PS图象处理软…

PS制作精美精美的绿色水晶下载按钮

PS制作精美精美的绿色水晶下载按钮

下载,精美,按钮,水晶,电脑软件,本教程是让朋友们很漂亮的绿色水晶下载按钮,用PS教程的方法出来的按钮真的很漂亮,作者给出了详细的解释,思路很清晰,很好,在这里和小朋友一起学习,希望能帮到你。 本教程介绍PS交朋友漂亮精致的绿色水晶按钮教程下…

判断浏览器的内核和版本号

判断浏览器的内核和版本号

内核,版本号,浏览器,电脑软件,浏览器的内核和版本号是由jQuery判断的。 复制代码代码如下所示: $(函数(){()) 如果(美元。browser.msie(美元。browser.version = = 7)){ $(# yourannet)。Css(缘左 } / / IE7浏览器 如果(美元。browser.msie(美元。brow…

ai绘制美丽平坦的宝石图标

ai绘制美丽平坦的宝石图标

图标,绘制,美丽,电脑软件,ai,本教程是介绍给朋友们,用ai绘制漂亮漂亮的平板宝石图标的过程。导师制作的宝石图标非常漂亮,难度也不大。建议像你这样的朋友可以按照教程学习。 本教程教ai学习者绘制漂亮的纹理,使用AI平板宝石图标教程,是一系列…

ps快速制作漂亮水滴效果

ps快速制作漂亮水滴效果

水滴,效果,快速,漂亮,电脑软件,本教程是介绍一个朋友用ps制作漂亮的水滴字体效果很快。本教程制作的字体非常漂亮,难度也不是很大。建议你喜欢你的朋友一起学习。 本教程主要是向大家介绍用ps快速制作漂亮的水滴字体的方法。本教程的难度不…

PS图象处理软件安装过滤器VirtualP

PS图象处理软件安装过滤器VirtualP

图象处理,软件安装,过滤器,教程,电脑软件,这里是萧边PS图象处理软件介绍安装和油漆过滤virtualpainter图形教程。想要这个过滤器的朋友可以过来参考一下。让我们看一看。 virtualpainter是一个很好的过滤工具,下面为大家介绍PS图象处理软件…

画家画龙字插画教程(第1部分)

画家画龙字插画教程(第1部分)

教程,插画,画家,电脑软件,画龙字,本教程是介绍利用画家画龙字插图,属于高级教程的画家教程,有一定难度,很适合朋友借鉴,有一定的画家依据。这是本教程的第一部分。 本教程是介绍利用画家画龙字插图,属于高级教程的画家教程,有一定难度。适合某个…