问题标签 [policy-injection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unity-container - 如何配置 NamespaceMatchingRule(IEnumerable) 在统一 2.0 xml 配置文件中?
我应该如何将 传递给使用 unity 2.0 配置文件IEnumerable<MatchingInfo>
的重载构造函数之一?NamespaceMatchingRule
c# - 使用 EntLib 的 perfmon - perfmon 中没有实例
我们需要为我们的应用程序添加性能监控。对于原型,我创建了一个示例项目,我正在尝试开始工作。
我正在尝试将 policyInjection 用于性能计数器,因此我们将能够在生产环境中打开和关闭性能监控。
到目前为止,我可以在 perfmon 中看到实际类别,但我看不到任何实例(见图),即使我很确定应用程序正在运行并且实例存在,正如您在附加源中看到的那样。
我尝试了很多东西,也用谷歌搜索,但没有找到任何可用的解决方案或线索寻找什么。
应用程序被创建为 consoleApplication
您还可以在此处下载 VS 的压缩项目:http: //dl.dropbox.com/u/19457132/stackOverflow/Mpd.Instrumentation.PerformanceCounter.zip
这是我的消息来源。
程序.cs
我的计数器.cs
IPPerformanceCounter.cs
最后是 app.config
c# - 用于自动记录方法进入和退出的 Tracer 类
我想跟踪每个函数入口和出口。假设我的类包含三个方法 MethodA MethodB MethodC... 通过实例有人调用 MethodA 和 methodA 调用 MethodB 和 MethodB 调用 methodC
现在,当有人调用 test obj = new test(); 和 obj.MethodA(); 我希望跟踪器在数据库中写入类似“Entered MethodA”的下一行“Entered MethodB”下一行“Entered MethodC”,然后是“Exited MethodC”“Exited MethodB”,最后是“Exited Method a”
我的限制是:我不应该在每个方法进入和退出中编写此跟踪代码。我希望这会自动发生。只需将 App.config 文件的 Key 设置为 true,跟踪器就会开始操作,false 意味着跟踪禁用。
这是我们要调试的实时生产应用程序。
为此,我们有两种方法:
使用 Policy Injection Applicaiton 块用策略包装 Test 类的实例:从 ICallHandler 创建一个策略处理程序,然后创建一个 MatchingRule,在 MatchingRule 中读取 app.config 文件,如果启用了跟踪,则返回 true,否则返回 false。
这样做的缺点是:每次我们通过 Policy 容器创建任何类的 Instance 时,系统都会读取 app.config 文件,然后读取配置文件中存在的策略,即使跟踪被禁用......这可能会降级表现...
我们发现了另一种方法,即存在于 Logging Application Block 中的 Tracer 类。它有类似方法入口方法出口的功能。http://www.michaelhamrah.com/blog/2010/02/performance-tracing-for-your-applications-via-enterprise-library/
请提供更多关于 Tracer 类的想法。我的要求是否适合插入 Tracer 类。
- POSTSHAP 不在我的预算中
非常感谢,
苏拉杰
c# - 团结+拦截+假货=大火球
我无法让 Unity 与新的 Fakes 框架(以前的 pex 和 moles)配合得很好
当我尝试创建统一拦截库的伪造品时,它导致我的单元测试在调试时运行良好,但会中断
InvalidProgramException - 公共语言运行时检测到无效程序。
问题是为什么?为什么调试与发布的行为不同?单元测试在调试时通过,但在我选择运行它时会因上述异常而中断。
c# - 异常 - 不能吞下具有非空返回类型的方法的异常
我们开发了一个示例项目来使用 entlib 异常处理程序块和 Unity 来处理所有异常。
当我尝试使用统一容器调用方法时,我收到以下异常,“不能吞下具有非空返回类型的方法的异常。”</p>
如果我们尝试调用 void 方法,它的工作正常。
下面是代码,
它的配置文件如下,
谁能解释一下如何解决这个问题?
dependency-injection - Unity 拦截和带有循环引用的类
我的富域模型有一些循环引用,这是有意的。
我还在编写自己的 ORM 以获得更多控制,并检测对属性所做的更改,我使用 Unity 拦截对设置器的任何调用并触发属性更改通知(类似于 EF 的工作方式)。
问题是我得到了堆栈溢出,因为策略拦截一遍又一遍地遍历同一个对象。有没有办法让它做引用计数?
我已经确保构造函数不是循环依赖的,但我仍然需要策略注入来停止重复递归相同的对象。
unity-container - 使用 Unity 作为 AOP 解决方案的策略注入
这是我们公司正在寻找的 AOP(横切关注点)解决方案的路径,但我仍然无法找到该方法的任何当前反馈或示例/实际示例,只有三个或三个的帖子四岁大。这让我有点紧张:
这是否意味着很少有人以这种方式使用 Unity / Policy Injection(更有可能),或者它工作得如此完美以至于没有人需要评论它(极不可能)?
如果有人可以向我指出有关此主题的更多最新和相关的帖子或文章,我将不胜感激。
谢谢,彼得
c# - 策略注入拦截不适用于 WebAPI 控制器
我正在使用 web api 实现策略注入,对于 DI,我们使用自定义 DependancyResolver。我已经使用 InterfaceIntercept 方法来实现策略注入。它在类(自定义创建的类)的情况下工作正常,但在 ApiController 的情况下不会触发策略注入。
为了使用 APIController 调用策略注入,我创建了一个接口并用控制器实现了它。在下面共享代码:我还需要使用 MessageHandlers 调用策略。
策略注入代码:
属性代码
接口代码:该接口由ApiController实现
IRequestExecutionController 接口正在由 RequestExecutionController 实现。 用统一注册类型:
注册拦截
由于我们有统一的解决依赖关系,所以我们创建了一个控制器工厂类来处理控制器实例的创建。
我们已经在全局配置文件中注册了这个控制器工厂。相同的过程适用于其他类,但不适用于 apicontroller。
任何人都可以对此提出建议吗?
c# - 来自基类的 Unity 拦截
我想为特定的基类型向 Unity 声明拦截,并自动为所有派生类型遵守该拦截。
我看到两个不同的 SO 帖子是相同的主题,但都没有我正在寻找的答案:
- Microsoft Unity Base Class Interception
这个告诉我我已经知道的;它仍然没有足够的信息。 - 派生类中的 Unity 拦截
这一篇非常详细,但与 Unity 配置有关,而不是我使用的命令式形式。
所以我想展示我拥有的代码,看看我是否可以获得特定于我的场景的答案。
我有这些课程:
[Report] 注释是我自己的自定义属性 - 它表明 AOP 日志记录应该应用于该方法。我安排它与基于策略的拦截一起使用,如下所示:
这ReportAttributePolicy
是我的自定义版本AttributeDrivenPolicy
。有关详细信息,请参阅我的Unity Interception博客文章。
显然,我正在尝试制作的场景是这样的:
即使请求的类型仅派生自RootController
,我也希望解析的类型能够根据我的ReportAttributePolicy
.
当我执行上面的代码时,我的 ReportAttributePolicy 上的任何方法都没有被执行。这意味着我没有机会让魔法发生。如果我不处理继承示例,那么一切正常。
我如何使它与继承一起工作?
c# - 开源Unity拦截,策略注入如何拦截几种类型
我们使用 UnityContainer 开源 ( https://github.com/unitycontainer ) 版本 5.11.1 进行 DI 和拦截。
web.config(示例)
下面是 AlwaysMatchingRule 的代码
下面是 CallHandler 的代码
它从不写入日志文件。我们尝试了其他方法并让它在单一类型上工作。
web.config 更改
LogMethodInterceptionBehavior 代码
方法的问题是我必须将它应用于所有我不想要的类型。有没有办法在一个地方做到这一点并将其应用于所有类型?
我可以使用策略注入方法或 Unity 拦截。
请注意,我希望通过 web.config 进行此操作。
谢谢,阿米特