gpt4 book ai didi

C# 可执行属性

转载 作者:行者123 更新时间:2023-11-30 17:37:49 25 4
gpt4 key购买 nike

有没有办法像这样定义属性:

public class MyAttribute : Attribute
{
void OnFunctionInvoke() { ... }
}

并用该属性标记一些函数

[MyAttribute]
void SomeFunction() { ... }

当调用 SomeFunction 时,我希望先调用 OnFunctionInvoke()。

最佳答案

您可以尝试使用 CodeAccessSecurityAttribute 作为by-way:

https://msdn.microsoft.com/en-us/library/system.security.permissions.codeaccesssecurityattribute(v=vs.110).aspx

  using System.Security.Permissions;
...

[AttributeUsage(AttributeTargets.All)]
public class MyInterceptAttribute: CodeAccessSecurityAttribute {
public MyInterceptAttribute(SecurityAction action)
: base(action) {
}

public override System.Security.IPermission CreatePermission() {
//TODO: put relevant code here
Console.Write("Before method execution!");

return null;
}
}

...

// We demand permissions which in turn leads to CreatePermission() call
[MyInterceptAttribute(SecurityAction.Demand)]
public void MyMethodUnderTest() {
Console.Write("Method execution!");
}

因此,从技术上讲,可能(我们利用安全性),但这只是一个旁路。

关于C# 可执行属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37387567/

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