Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
微软正在为C#中的AOP开发解决方案吗?_C#_.net_Aop - Fatal编程技术网

微软正在为C#中的AOP开发解决方案吗?

微软正在为C#中的AOP开发解决方案吗?,c#,.net,aop,C#,.net,Aop,微软正在为C#中的AOP开发解决方案吗?(真正的AOP)替代方案是什么 附加问题:代码契约是一种AOP吗?作为替代方案,您也可以使用Spring AOP 链接: 注:我更喜欢Unity,你也可以使用Spring AOP 链接: 注:我更喜欢统一是另一种选择。很容易开始使用,尽管它不再免费完全使用 我不知道微软是否还在积极参与这个项目。也许其他人可以对此有所了解 不是(一种)面向方面的编程。是另一种选择。很容易开始使用,尽管它不再免费完全使用 我不知道微软是否还在积极参与这个项目。也许其他人可以对

微软正在为C#中的AOP开发解决方案吗?(真正的AOP)替代方案是什么


附加问题:代码契约是一种AOP吗?

作为替代方案,您也可以使用Spring AOP

链接:


注:我更喜欢Unity,你也可以使用Spring AOP

链接:

注:我更喜欢统一

是另一种选择。很容易开始使用,尽管它不再免费完全使用

我不知道微软是否还在积极参与这个项目。也许其他人可以对此有所了解

不是(一种)面向方面的编程。

是另一种选择。很容易开始使用,尽管它不再免费完全使用

我不知道微软是否还在积极参与这个项目。也许其他人可以对此有所了解


不是(一种)面向方面的编程。

大多数.net依赖注入框架都能够使用AOP技术,我个人更喜欢Ninject和Interceptor插件,因为它使用简单,不需要任何第三方属性的类污染或任何东西

尽管如此,Spring.net、Castle Windsor和许多其他DI框架支持相同的原则,但语法和方法略有不同,有些是xml驱动的,有些是c#驱动的,因此可以保证编译时的安全性

需要考虑的一件事是,大多数DI框架都是通过类代理来实现的,因此它们要求您的方法是虚拟的,然后在运行时它代理您的类方法,您可以在该点进行拦截。还有一些其他的方法,比如IL编织,这就是PostSharp所做的,它可以比代理更快,尽管我没有任何测量数据来支持这一点

没有看到额外的问题,对我来说,我会说这不是一个明确的答案,因为这取决于你如何使用它,因为通常你使用AOP作为一种方式来分离你的非功能性关注点,如日志记录、事务可能验证和源代码,所以你从外到内添加这个逻辑,因此,理想情况下,您的源代码不知道AOP正在发生(尽管如果您使用一些第三方属性将源代码耦合到AOP框架,情况并不总是如此)


由于代码契约可以与现有类一起编写,也可以通过属性连接,或者我认为可以在运行时完全注入,就像日志记录一样,您可以将它们全部放入类中,但如果使用AOP方法,则不会。因此,对我来说,代码契约只是一种强制执行某些内容的工具,您可以以AOP方式使用它,也可以将其嵌入到代码中。

大多数.net依赖项注入框架都能够使用AOP技术,我个人更喜欢Ninject和Interceptor插件,因为它使用简单,不需要任何第三方属性的类污染或任何东西

尽管如此,Spring.net、Castle Windsor和许多其他DI框架支持相同的原则,但语法和方法略有不同,有些是xml驱动的,有些是c#驱动的,因此可以保证编译时的安全性

需要考虑的一件事是,大多数DI框架都是通过类代理来实现的,因此它们要求您的方法是虚拟的,然后在运行时它代理您的类方法,您可以在该点进行拦截。还有一些其他的方法,比如IL编织,这就是PostSharp所做的,它可以比代理更快,尽管我没有任何测量数据来支持这一点

没有看到额外的问题,对我来说,我会说这不是一个明确的答案,因为这取决于你如何使用它,因为通常你使用AOP作为一种方式来分离你的非功能性关注点,如日志记录、事务可能验证和源代码,所以你从外到内添加这个逻辑,因此,理想情况下,您的源代码不知道AOP正在发生(尽管如果您使用一些第三方属性将源代码耦合到AOP框架,情况并不总是如此)


由于代码契约可以与现有类一起编写,也可以通过属性连接,或者我认为可以在运行时完全注入,就像日志记录一样,您可以将它们全部放入类中,但如果使用AOP方法,则不会。因此,对我来说,代码契约只是一种强制执行某些内容的工具,您可以以AOP方式使用它,也可以将其嵌入到代码中。

您可能还对这个相关问题感兴趣:您可能还对这个相关问题感兴趣: