问题标签 [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.

0 投票
0 回答
272 浏览

unity-container - 如何配置 NamespaceMatchingRule(IEnumerable) 在统一 2.0 xml 配置文件中?

我应该如何将 传递给使用 unity 2.0 配置文件IEnumerable<MatchingInfo>的重载构造函数之一?NamespaceMatchingRule

0 投票
1 回答
518 浏览

c# - 使用 EntLib 的 perfmon - perfmon 中没有实例

我们需要为我们的应用程序添加性能监控。对于原型,我创建了一个示例项目,我正在尝试开始工作。

我正在尝试将 policyInjection 用于性能计数器,因此我们将能够在生产环境中打开和关闭性能监控。

到目前为止,我可以在 perfmon 中看到实际类别,但我看不到任何实例(见图),即使我很确定应用程序正在运行并且实例存在,正如您在附加源中看到的那样。

perfmon 中没有实例

我尝试了很多东西,也用谷歌搜索,但没有找到任何可用的解决方案或线索寻找什么。

应用程序被创建为 consoleApplication

您还可以在此处下载 VS 的压缩项目:http: //dl.dropbox.com/u/19457132/stackOverflow/Mpd.Instrumentation.PerformanceCounter.zip

这是我的消息来源。

程序.cs

我的计数器.cs

IPPerformanceCounter.cs

最后是 app.config

0 投票
0 回答
1396 浏览

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 不在我的预算中

非常感谢,

苏拉杰

0 投票
2 回答
657 浏览

c# - 团结+拦截+假货=大火球

我无法让 Unity 与新的 Fakes 框架(以前的 pex 和 moles)配合得很好

当我尝试创建统一拦截库的伪造品时,它导致我的单元测试在调试时运行良好,但会中断

InvalidProgramException - 公共语言运行时检测到无效程序。

问题是为什么?为什么调试与发布的行为不同?单元测试在调试时通过,但在我选择运行它时会因上述异常而中断。

0 投票
1 回答
379 浏览

c# - 异常 - 不能吞下具有非空返回类型的方法的异常

我们开发了一个示例项目来使用 entlib 异常处理程序块和 Unity 来处理所有异常。

当我尝试使用统一容器调用方法时,我收到以下异常,“不能吞下具有非空返回类型的方法的异常。”</p>

如果我们尝试调用 void 方法,它的工作正常。

下面是代码,

它的配置文件如下,

谁能解释一下如何解决这个问题?

0 投票
1 回答
397 浏览

dependency-injection - Unity 拦截和带有循环引用的类

我的富域模型有一些循环引用,这是有意的。

我还在编写自己的 ORM 以获得更多控制,并检测对属性所做的更改,我使用 Unity 拦截对设置器的任何调用并触发属性更改通知(类似于 EF 的工作方式)。

问题是我得到了堆栈溢出,因为策略拦截一遍又一遍地遍历同一个对象。有没有办法让它做引用计数?

我已经确保构造函数不是循环依赖的,但我仍然需要策略注入来停止重复递归相同的对象。

0 投票
0 回答
222 浏览

unity-container - 使用 Unity 作为 AOP 解决方案的策略注入

这是我们公司正在寻找的 AOP(横切关注点)解决方案的路径,但我仍然无法找到该方法的任何当前反馈或示例/实际示例,只有三个或三个的帖子四岁大。这让我有点紧张:

现实世界应用程序中的策略注入应用程序块?

这是否意味着很少有人以这种方式使用 Unity / Policy Injection(更有可能),或者它工作得如此完美以至于没有人需要评论它(极不可能)?

如果有人可以向我指出有关此主题的更多最新和相关的帖子或文章,我将不胜感激。

谢谢,彼得

0 投票
1 回答
1071 浏览

c# - 策略注入拦截不适用于 WebAPI 控制器

我正在使用 web api 实现策略注入,对于 DI,我们使用自定义 DependancyResolver。我已经使用 InterfaceIntercept 方法来实现策略注入。它在类(自定义创建的类)的情况下工作正常,但在 ApiController 的情况下不会触发策略注入。

为了使用 APIController 调用策略注入,我创建了一个接口并用控制器实现了它。在下面共享代码:我还需要使用 MessageHandlers 调用策略。

策略注入代码:

属性代码

接口代码:该接口由ApiController实现

IRequestExecutionController 接口正在由 RequestExecutionController 实现。 用统一注册类型:

注册拦截

由于我们有统一的解决依赖关系,所以我们创建了一个控制器工厂类来处理控制器实例的创建。

我们已经在全局配置文件中注册了这个控制器工厂。相同的过程适用于其他类,但不适用于 apicontroller。

任何人都可以对此提出建议吗?

0 投票
1 回答
896 浏览

c# - 来自基类的 Unity 拦截

我想为特定的基类型向 Unity 声明拦截,并自动为所有派生类型遵守该拦截。

我看到两个不同的 SO 帖子是相同的主题,但都没有我正在寻找的答案:

所以我想展示我拥有的代码,看看我是否可以获得特定于我的场景的答案。

我有这些课程:

[Report] 注释是我自己的自定义属性 - 它表明 AOP 日志记录应该应用于该方法。我安排它与基于策略的拦截一起使用,如下所示:

ReportAttributePolicy是我的自定义版本AttributeDrivenPolicy。有关详细信息,请参阅我的Unity Interception博客文章。

显然,我正在尝试制作的场景是这样的:

即使请求的类型仅派生自RootController,我也希望解析的类型能够根据我的ReportAttributePolicy.

当我执行上面的代码时,我的 ReportAttributePolicy 上的任何方法都没有被执行。这意味着我没有机会让魔法发生。如果我不处理继承示例,那么一切正常。

我如何使它与继承一起工作?

0 投票
0 回答
47 浏览

c# - 开源Unity拦截,策略注入如何拦截几种类型

我们使用 UnityContainer 开源 ( https://github.com/unitycontainer ) 版本 5.11.1 进行 DI 和拦截。

web.config(示例)

下面是 AlwaysMatchingRule 的代码

下面是 CallHandler 的代码

它从不写入日志文件。我们尝试了其他方法并让它在单一类型上工作。

web.config 更改

LogMethodInterceptionBehavior 代码

方法的问题是我必须将它应用于所有我不想要的类型。有没有办法在一个地方做到这一点并将其应用于所有类型?

我可以使用策略注入方法或 Unity 拦截。

请注意,我希望通过 web.config 进行此操作。

谢谢,阿米特