知识点
相关文章
更多最近更新
更多Aspect-Oriented Programming
2019-03-02 23:41|来源: 网路
转自:http://www.cnblogs.com/Wind-Eagle/archive/2008/05/05/1183705
相关问答
更多-
我相信这是可能的,因为Spring.Net在运行时发出代理类,这会跳过编译时类型检查。 它本质上实现了一个包装原始类的装饰器模式,并动态生成一个新的方法实现。 在动态生成的代理方法中,返回类型在写入IL时可以更改,而.NET允许它,因为它在运行时不检查类型。 在编译时,它当然也是完全有效的。 这导致了上面相当奇怪的场景,因此您的静态类型实际上与运行时类型不同。 以下是真实的,因为它正在检查实际的运行时类型,如果解析为布尔值,那么可以运行该类型。 updates.GetType().Name == "Bool ...
-
AOP解决了交叉关注的问题 ,这将是以不同方法重复的任何类型的代码,通常不能完全重构到自己的模块中,如记录或验证。 所以,使用AOP,你可以把这些东西从主代码中删除,并且像这样定义它: function mainProgram() { var x = foo(); doSomethingWith(x); return x; } aspect logging { before (mainProgram is called): { log.Write(" ...
-
只是为了让你的头脑围绕着它:它是钩住事件的能力,如:创建对象,设置属性等,并附加一般功能,将被填充相关的上下文。 因为C#没有这样的内置功能,所以你需要一个像PostSharp一样的框架来做'bytecode weaving'(即只需编写代码来实际调用,直接到你的类)来模拟它。 Just to get your head around it: It is the ability to hook events such as: creation of objects, setting of propertie ...
-
从这个面向方面的编程:模块化的激进研究直接借用的一个例子,Youtube视频是绘画到显示器。 在该示例中,您有一个绘图程序,它由点,形状等组成,当发生对这些对象的更改时,您需要告诉显示更新自身。 没有处理它在一个方面,你最终重复你自己一点。 AOP,正如我所了解的,是为了不重复自己的交叉关切,可能与业务逻辑无关。 使用方面,您可以将这些问题模块化到方面。 其中一个例子是日志记录,但有一些不同的事情你可能会重复。 它已经不断发展,并且不再涉及面向方面的编程,而且还有面向方面的建模。 有关面向方面编程的更多信息 ...
-
为什么“vs”? 不是“vs”。 您可以结合使用面向对象编程与功能编程,还可以与面向对象的编程结合使用。 它不是“vs”,它是“面向对象编程的面向对象编程”。 对我而言,AOP是某种“元编程”。 AOP所做的一切也可以通过添加更多代码来实现。 AOP只是节省你编写这段代码。 维基百科有一个这个元编程的最好的例子之一。 假设你有一个包含许多“set ...()”方法的图形类。 在每种设置方法之后,图形的数据改变,因此图形改变,因此图形需要在屏幕上更新。 假设要重绘图形,你必须调用“Display.update ...
-
什么是控制反转/面向方面感的.NET代理对象?(What is a .NET proxy object in the Inversion of Control / Aspect-Oriented sense?)[2021-09-10]
通常,Proxy对象是一个对象(类的实例),它将完全相同的公共接口公开为“真实类”,但只是将对其成员的所有调用转发给其他真实类。 代理对象被用于各种原因... 一个目的是“伪装”成为真正的类,因此客户端组件(或对象)可以“相信”它正在与“真实”对象交谈,但在代理内部,其他东西(如日志记录,交易支持等)。 )正在同时完成......其次,代理人可以非常便宜地比较实际对象。 并且通常用于保护真实对象(当客户端不使用它们时,关闭或释放池以供其他客户端使用)...代理保持“活跃”状态,客户端认为它仍然存在一个与真实 ... -
如何在.Net平台上开始面向方面编程?(How to get started on Aspect Oriented Programming on the .Net platform?)[2023-12-01]
PostSharp具有额外的优势,它通过执行IL编织来实现AOP。 事实上,它在编译时或编译后将代码添加到Il中。 这使得构建更慢,但运行时应该更快。 其他一些人在运行时(城堡项目,我认为它是windsor在那里做AOP)在运行时比较慢,但建造速度更快。 PostSharp has the added advantage that it does it's AOP by doing IL weaving. In fact it adds code to the Il when/or just after c ... -
良好实现面向方面编程参考需要[关闭](Good Implementation of Aspect oriented Programming reference required [closed])[2022-07-01]
看看PostSharp 。 它是.NET中AOP的一个框架,被广泛使用。 与其他框架相比,它使用一种方法将生成的代码编织成中间语言,这有助于提高性能。 在网站上也有很多关于AOP的资源以及如何使用它。 还有免费版和试用版。 但是,如果您只需要装饰代码的一些小部分,那么使用Decorator模式或类似的东西也可能是一种选择。 Have a look at PostSharp. It is a framework for AOP in .NET that is widely used. In contrast ... -
如果您认为政策是系统的“方面”,那么具体方面应该处理与该政策有关的所有事情。 对象应该不知道具体的策略。 这样,如果您以后需要更改策略,则不需要更改对象中的任何内容。 If you consider the policy to be an "aspect" of the system then the specific aspect should handle everything that has to do with that policy. The objects should be unaware ...
-
AOP和AS3相当困难,因为AS3在运行时非常静态。 至少密封的类,绝大多数...你可以使用ECMA兼容模式或通过代理,所有这些都是以速度和一些限制为代价的(代理不能在AS3中模拟,所以你实际上需要针对这些代理编写代码)... mintmlc支持的[Bindable]元标记将帮助您添加AOP以进行属性访问...至少是一种。 它将生成调度PropertyChangeEvent的代码,如果需要,您可以取消... 我认为AS3中的AOP只能在编译时使用(好吧,您可以在构建后对ABC进行后处理,但我不确定这是最简单 ...