我们正在构建一个使用 PolicyInjection 来执行某些任务的框架。我们为此使用属性。此代码是在单独的框架解决方案中编写的。
Out CallHandler 可能如下所示:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Method)]
public class MyCallHandlerAttribute : HandlerAttribute
{
...
}
在 Unity 中,我们有:
namespace Microsoft.Practices.Unity.InterceptionExtension
{
public abstract class HandlerAttribute : Attribute
{
...
}
}
在客户端解决方案中,我们有一个使用 Unity 注册的调用处理程序 (MyCallHandler)。要在调用处理程序中执行代码,我们需要在模型的类/方法/属性上方添加属性:
[MyCallHandler(params[])]
public class MyModel : IMyModel
{
...
}
现在的问题是,要使用 MyCallHandler,我们需要对 PolicyInjection DLL 的引用,以便编译器了解 HandlerAttribute 是一个属性。如果没有引用,我们会得到“MyCallHandler”不是属性类警告(编译时出错)。
我们如何以这种方式实现这一点,而不需要在我们的客户端解决方案中引用 Unity DLL,而只需要我们的框架 DLL?