可以使用 PostSharp AOP 注入动态代码
Possible to inject dynamic code using PostSharp AOP
假设我创建了一个自定义 PS 属性 InjectCodeAttribute
并将其应用于 class 或 class 成员,是否可以告诉 PostSharp 替换该属性以字符串形式提供的动态 C# 代码。
例如,我可以转这个吗:
[InjectCodeAttribute]
public class MyClass
进入这个:
[DependencyProperty, Obfuscation(Feature = "renaming", Exclude = true, StripAfterObfuscation = true)]
public class MyClass
通过向 InjectCodeAttribute
属性提供此字符串 [DependencyProperty, Obfuscation(Feature = "renaming", Exclude = true, StripAfterObfuscation = true)]
?
注意:我知道 PostSharp http://doc.postsharp.net/attribute-introduction 提供的自定义属性功能,并且我可以创建一个注入示例属性的属性,但我只想知道是否可以注入任何代码(甚至可能在编译期间抛出 exception/error 的无效代码)我以字符串形式提供。
所描述的用例的答案是否定的。 PostSharp 在 之后运行 C# 编译已经完成并处理二进制程序集。此时为 C# 编译器添加字符串输入已经太晚了。
假设我创建了一个自定义 PS 属性 InjectCodeAttribute
并将其应用于 class 或 class 成员,是否可以告诉 PostSharp 替换该属性以字符串形式提供的动态 C# 代码。
例如,我可以转这个吗:
[InjectCodeAttribute]
public class MyClass
进入这个:
[DependencyProperty, Obfuscation(Feature = "renaming", Exclude = true, StripAfterObfuscation = true)]
public class MyClass
通过向 InjectCodeAttribute
属性提供此字符串 [DependencyProperty, Obfuscation(Feature = "renaming", Exclude = true, StripAfterObfuscation = true)]
?
注意:我知道 PostSharp http://doc.postsharp.net/attribute-introduction 提供的自定义属性功能,并且我可以创建一个注入示例属性的属性,但我只想知道是否可以注入任何代码(甚至可能在编译期间抛出 exception/error 的无效代码)我以字符串形式提供。
所描述的用例的答案是否定的。 PostSharp 在 之后运行 C# 编译已经完成并处理二进制程序集。此时为 C# 编译器添加字符串输入已经太晚了。