C# 动态构建方法/属性体

C# 动态构建方法/属性体,c#,.net,aop,C#,.net,Aop,所以我有一个样板代码,我想应用到一些特定类的属性上,每个类的属性本质上是相同的。我不必为所有这些属性一次又一次地键入相同的代码,而是想知道是否有任何方法可以在编译后或运行时动态构建这些属性方法,方法是为属性分配一个C#属性,该属性包含每个方法的细微差异(一个字符串)然后通过反射找到这些属性 我知道PostSharp,但我正在寻找一些免费或开源的东西 例如,不必这样做: public string Name { get { return _member.GetValue( "otherna

所以我有一个样板代码,我想应用到一些特定类的属性上,每个类的属性本质上是相同的。我不必为所有这些属性一次又一次地键入相同的代码,而是想知道是否有任何方法可以在编译后或运行时动态构建这些属性方法,方法是为属性分配一个C#属性,该属性包含每个方法的细微差异(一个字符串)然后通过反射找到这些属性

我知道PostSharp,但我正在寻找一些免费或开源的东西

例如,不必这样做:

public string Name {
    get { return _member.GetValue( "othername" ); }
    set { _member.SetValue( "othername", value ); }
}
…对于我拥有的每一处房产,我只想说:

[MapTo( "othername" )]
public string Name { get; set; }

有什么想法吗?

看起来您正在寻找一个类似的
AOP(面向方面编程)
的程序


它允许您以编程方式注入代码(就像您提到的那样),并且非常灵活。

看起来您正在寻找一个类似的
AOP(面向方面编程)

它允许您以编程方式注入代码(正如您所提到的),并且非常灵活

  • 您可以用于动态代码注入
  • 您可以将这些属性设置为虚拟,并生成重写这些属性的类,并将新类编译到将定义重写属性的程序集。然后,您应该创建动态生成的类的实例,并将其用作已定义的类
  • 您可以用于动态代码注入
  • 您可以将这些属性设置为虚拟,并生成重写这些属性的类,并将新类编译到将定义重写属性的程序集。然后,您应该创建动态生成的类的实例,并将其用作已定义的类
    您可以使用来做类似的事情。

    您可以使用来做类似的事情。

    好的,所以它可能有自己的答案。我知道以下AOP框架您无需付费:

    • ,

      • 好的,所以它可能有自己的答案。我知道以下AOP框架您无需付费:

        • ,

        Check out是代码注入的开源替代方案

        Check out是代码注入的开源替代方案

        正如我所说,我知道PostSharp,但它不再免费,需要200美元的许可证。如果你知道任何可行的(免费)选择,请让我知道。是的,我现在意识到了。我想其他人建议的框架是你的选择。例如,
        Mono.Cecil
        是免费的。正如我所说,我知道PostSharp,但它不再免费,需要200美元的许可证。如果你知道任何可行的(免费)选择,请让我知道。是的,我现在意识到了。我想其他人建议的框架是你的选择。例如,
        Mono.Cecil
        是免费的。如果说Mono.Cecil只适用于重写程序集(.DLL),但对操作已加载到应用程序域的程序集没有多大帮助,那么说Mono.Cecil只适用于重写程序集(.DLL)是否正确,但是它对操作已经加载到应用程序域中的程序集没有多大帮助?