【问题标题】:Annotate asp.net properties in MVC auto generated class在 MVC 自动生成的类中注释 asp.net 属性
【发布时间】:2017-08-23 15:03:34
【问题描述】:

我的模型文件夹中有一个自动生成的部分类,其中包含很多属性,我需要修改这些属性中的一些设置器(注释属性)。
为了确保我以后不会重复自己(刷新后),我通过使用属性有另一个具有相同属性的部分类,其中这些属性不能被修改,只能通过提供的属性。
所以我建立了一个自定义属性类来修改这些属性。但这似乎比有用更滥用,所以我怎样才能注释我想要的属性,它也是一个 DRY 和干净的代码?

public partial class Stud  <---- Extended partial class
{

    public string Property2                 <---- This does not work! 
    { 
        get {return Property2;}
        set {Property2 = Property2.Trim();} 
    }
}

【问题讨论】:

  • 不确定我是否了解您想要做什么。您的代码示例在循环中调用自身。如果您尝试使用不同的实现来更改自动生成的属性实现,那么这是不可能的。您将需要一个不同的属性来获取和设置生成的属性,并在那里执行新的逻辑。
  • 我正在尝试覆盖模型自动生成的部分类中的一些属性。这不仅仅是验证,我已经在使用元数据属性。

标签: c# asp.net-mvc properties attributes partial-classes


【解决方案1】:

假设您的类是使用 T4 模板生成的,您最好的选择是在模板中添加自定义逻辑以生成特定属性。否则,无法覆盖在分部类的另一部分中定义的属性。

另一种选择是在您控制的部分中使用自定义属性包装生成的属性,这将使用您的自定义逻辑写入和读取生成的属性。然后,您将使用 wrapper 属性来访问生成的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 2019-03-24
    • 1970-01-01
    • 2017-01-22
    • 2016-05-05
    • 1970-01-01
    • 2012-10-27
    相关资源
    最近更新 更多