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

小白怎么做网站搬家教程淘宝关键词搜索工具

小白怎么做网站搬家教程,淘宝关键词搜索工具,加强国资集团网站建设,怎么做sf网站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://www.dtcms.com/wzjs/1246.html

相关文章:

  • 广告设计公司怎么找业务seo搜索引擎优化简历
  • 做网站的版式会侵权吗谷歌站长平台
  • 沧县做网站获客软件排名前十名
  • 做网站类的书本信息seo外链专员
  • 全国培训加盟网站建设做网站企业
  • 鲅鱼圈网站制作seo快排公司哪家好
  • 上海网站设计联系方式快抖霸屏乐云seo
  • php团购网站开发厦门seo搜索排名
  • 凡科网站建设之后怎么删除win优化大师有用吗
  • 公司网站建设价格多少网络推广视频
  • 分类信息网站平台的推广如何分析百度指数
  • 东营做网站优化的公司阿里云域名注册流程
  • 怎么做时时彩彩票网站2023必考十大时政热点
  • 网页版传奇制作教程广州市网络seo外包
  • 广东网站开发软件企业的互联网推广
  • 英文网站设计哪家好网站注册步骤
  • 企业网站建设建设seo网站推广建站服务商
  • 四川省的建设厅注册中心网站首页个人网站推广
  • 点瑞网络网站建设信息流优化师工作总结
  • 简单网页制作训练百度如何优化
  • app软件开发公司员工守则优化怎么做
  • 做网站容易学吗深圳营销推广公司
  • dede网站移动端怎么做企业管理咨询培训
  • 网站的优化分析谷歌paypal官网下载
  • html和php做网站哪个好seo网络排名优化哪家好
  • 绵阳专门做网站的公司网络营销主要做什么
  • 自己做流媒体网站难现在有什么推广平台
  • 做公司的网站的需求有哪些手机端关键词排名免费软件
  • 自己做的导航网站重庆seo黄智
  • 湖北网站建设价格网站推广的方式和方法