如何将后锐属性实现为接口

本文关键字:实现 接口 属性 | 更新日期: 2023-09-27 18:37:17

>我有一个简单的异常处理属性。问题是我们在公共项目中使用该属性,它创建了对所有项目的依赖关系。我们如何从公共项目中删除Postsharp依赖项并使用Autofac注入Postsharp。

  • 我们的目标是从根项目轻松更新 Nuget 包

如何将后锐属性实现为接口

很可能无法使用

Autofac应用方面。

如果使用属性应用方面,则需要引用PostSharp.dll因为它定义了方面的基类。

但是,您可以使用项目级 xml 配置文件添加方面:

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.postsharp.org/1.0/configuration"
         xmlns:m="clr-namespace:MyAspectLibrary;assembly:MyAspectLibrary">
  <Multicast>
    <m:MyAspect AttributeTargetTypes="MyProject.Class1" AttributeTargetMembers="Method1" />
  </Multicast>
</Project>

该文件必须具有相同的名称,并且必须与扩展名为 psproj 的 csproj 文件放在同一文件夹中(此处为 MyProject.psproj )。

在这种情况下,您可以从MyProject中删除对 PostSharp.dll 的引用。它仍然需要从 MyAspectLibrary 引用。

编辑:请注意,MyProject仍必须由PostSharp进行后处理。请参阅 csproj 文件中的 PostSharp.targets 和相关行。