gpt4 book ai didi

c# - Postsharp 第 3 方类

转载 作者:太空狗 更新时间:2023-10-29 23:07:26 24 4
gpt4 key购买 nike

我需要装饰第 3 方 DLL 中类中的所有方法。我使用 C# 5.0 和 postsharp 3.1。我当然可以做这样的事情。

//In 3rd party library
class A
{
public virtual int foo(string a) {}

public virtual void foo2() {}
}

//In my
class B : A
{
public override int foo(string a) {
int result = base.foo(a);
//Do something
return result;
}

public override void foo2() {
base.foo2();
//Do something
}
}

做某事总是一样的。
我不想复制所有丑陋的方法。一些想法我可以使用什么或谷歌?谢谢

最佳答案

假设您创建了 OnMethodBoundary aspect在方法末尾添加一些自定义代码:

[Serializable]
public class MyTestAttribute : OnMethodBoundaryAspect
{
public override void OnSuccess(MethodExecutionArgs args)
{
// Do something.
}
}

要将此方面应用于第 3 方程序集,您可以将其应用于您的项目并设置 AttributeTargetAssemblies属性以第 3 方程序集的名称。这将导致 PostSharp 修改您的程序集并使用您的自定义代码修饰对第 3 方程序集的调用。

[assembly: MyTest(AttributeTargetAssemblies = "SomeLibrary")]

关于c# - Postsharp 第 3 方类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24576791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com