当前位置: 首页 > wzjs >正文

东莞市镇街建设项目监理招标网站为切实加强 网站建设

东莞市镇街建设项目监理招标网站,为切实加强 网站建设,六安网站制作金狮,合肥建设官方网站AOP(面向切片编程的概念我这里就不介绍了,这里先介绍一下C#中的AOP编程框架。 1.AOP的分类 .net下支持AOP的框架很多,搜了一下有:PostSharp、AspectInjector、Fody 、Castle Windsor、Spring.NET、Ninject、Unity等,实现的方式主要…

        AOP(面向切片编程的概念我这里就不介绍了,这里先介绍一下C#中的AOP编程框架。

1.AOP的分类

        .net下支持AOP的框架很多,搜了一下有:PostSharp、AspectInjector、FodyCastle Windsor、Spring.NET、Ninject、Unity等,实现的方式主要氛围两大类:

  • 编译时织入:通常在运行时性能较好,但编译时间可能增加。上面的红色框架
  • 动态代理:通常在高频调用时会有额外的性能开销。上面的蓝色框架。

1.编译时织入举例

        PostSharp是非开源的,这里以AspectInjector为例:

using AspectInjector.Broker;Console.WriteLine("Hello, World!");
MyClass myClass = new MyClass();
myClass.MyMethod();[Aspect(Scope.Global)]
[Injection(typeof(LogAttribute))]
public class LogAttribute : Attribute
{[Advice(Kind.Before)]public void Before([Argument(Source.Name)]string name){Console.WriteLine($"Entering method: {name}");}[Advice(Kind.After)]public void After([Argument(Source.Name)] string name){Console.WriteLine($"Exiting method: {name}");}
}public class MyClass
{[Log]public void MyMethod(){Console.WriteLine("Executing MyMethod");}
}

运行结果如下:

Hello, World!
Entering method: MyMethod
Executing MyMethod
Exiting method: MyMethod

想了解更多可以参考AspectInjector的官方文档

2.动态代理举例

        单纯的动态代理其实需要手动编写的代码较多,一般是结合依赖注入容器来使用。这个以比较常用的Autofac 依赖注入容器为例:

  • 首先,通过 NuGet 安装 Autofac 和动态代理支持:
Install-Package Autofac
Install-Package Autofac.Extras.DynamicProxy
  •  创建接口和实现类

定义一个接口和它的实现类:

public interface IMessageService
{void SendMessage(string message);
}public class EmailService : IMessageService
{public void SendMessage(string message){Console.WriteLine($"Email sent: {message}");}
}
  • 3. 创建拦截器

定义一个拦截器类,用于实现 AOP 功能:

using Castle.DynamicProxy;
using System;public class LoggingInterceptor : IInterceptor
{public void Intercept(IInvocation invocation){Console.WriteLine($"Entering method: {invocation.Method.Name}");invocation.Proceed(); // 调用原方法Console.WriteLine($"Exiting method: {invocation.Method.Name}");}
}
  • 设置 Autofac 容器

在 Autofac 容器中注册服务和拦截器:

using Autofac;public class Program
{static void Main(string[] args){var builder = new ContainerBuilder();builder.RegisterType<EmailService>().As<IMessageService>().EnableInterfaceInterceptors().InterceptedBy(typeof(LoggingInterceptor));builder.RegisterType<LoggingInterceptor>();var container = builder.Build();var messageService = container.Resolve<IMessageService>();messageService.SendMessage("Hello, Autofac with AOP!");}
}

运行结果:

Entering method: SendMessage
Email sent: Hello, Autofac with AOP!
Exiting method: SendMessage

可以看到我们成功的实现了在原函数前后插入执行代码。动态代理在web服务使用较多。


文章转载自:

http://0frzQZKm.yxshp.cn
http://TybN1UBQ.yxshp.cn
http://xl7mJMPT.yxshp.cn
http://3Vtr2uYf.yxshp.cn
http://9qhyK9ZH.yxshp.cn
http://NVrtQa7D.yxshp.cn
http://qUkAKES4.yxshp.cn
http://1h6P1xwj.yxshp.cn
http://Z97n0iHJ.yxshp.cn
http://4G00Jc73.yxshp.cn
http://1rV5w4MS.yxshp.cn
http://WIxuz4S6.yxshp.cn
http://thwj1Nq9.yxshp.cn
http://swTTxTa7.yxshp.cn
http://GtVcVtnJ.yxshp.cn
http://LpHdGXpZ.yxshp.cn
http://faQggaE8.yxshp.cn
http://ttfKPi2s.yxshp.cn
http://nTvDpImu.yxshp.cn
http://Vrtkd9R6.yxshp.cn
http://VYWJXaxk.yxshp.cn
http://AYL2bO9n.yxshp.cn
http://vXkHTwj4.yxshp.cn
http://UEkpWffH.yxshp.cn
http://EhV0WEFN.yxshp.cn
http://F4xlcApP.yxshp.cn
http://Pan2z3OP.yxshp.cn
http://fPd93RmE.yxshp.cn
http://PwDTnVCM.yxshp.cn
http://EmEahBU7.yxshp.cn
http://www.dtcms.com/wzjs/744760.html

相关文章:

  • 百度怎么自己做网站短视频seo是什么
  • 深圳租房建设局网站北京网站建设企业网站制作
  • 便宜的网站设计企业有哪些做图纸的网站
  • 网站建设文件夹名字wordpress主题免费中文
  • 网站建设与维护工作内容微分销系统怎么做
  • 网站的排版好看做展示型网站便宜吗
  • 网站搭建中114514免费wordpress中文博客主题
  • 北京市房山建设培训学校网站想攻击一个网站怎么做
  • 网站制作软件是什么我想创个网站
  • 打开网页出现网站建设中专业做网站方案ppt
  • 网站开发建设明细报价表做网站的大小
  • 淘宝的网站是怎么做的企业宣传网页设计
  • 国外创意网站设计欣赏水泵网站站群建设
  • 网站域名注册信息查询wordpress 前台发布文章
  • 湖北做网站的公司图库素材网站模板
  • 营销推广型网站价格怎样做视频网站的外链
  • wap手机网站开发asp经验wordpress怎样在列表页使用瀑布流
  • 雄安网站建设优化公司个人网站制作的步骤
  • 提升网站建设品质公司淄博百度电话
  • 公司网站实名认证怎么做网站 备案 注销 影响
  • 做特产的网站开张怎么宣传北京工程信息网站
  • 柯桥网站建设域名自助服务平台
  • 帝国cms 关闭网站网站建设行业企业发展前景
  • 有个性的个人网站办公室装修费计入什么费用
  • 有些网站为什么会有弹窗中企动力是外包公司吗
  • 个人网站备案需要什么资料桔子seo工具
  • 可以做动态影集的网站wordpress添加文章属性
  • 网站建设好后怎么制作网页宁波网站制作作
  • 订餐网站的数据库建设仿第四城地方门户网站模板
  • 中国平面设计网站上海市建设局网站