- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我一直在使用 MetadataType 属性向我使用 T4 模板生成的类添加验证属性。这非常有效,但我希望能够在某些属性上使用 DefaultValue 属性,这样我的 MetadataType 类将更完整地描述我的类(这样我就不必在这些类中实现 OnCreated 方法) .我可以将该属性添加到我的 MetadataType 类中,但它没有任何效果。
这是一些示例源 - 生成的部分(当然)在不同的文件中。如果我实例化一个 Widget 对象,Name 属性将为空。
/// <summary>
/// This part is generated
/// </summary>
public partial class Widget
{
public string Name { get; set; }
}
/// <summary>
/// This part is hand-coded so I can add attributes, custom methods etc.
/// </summary>
[System.ComponentModel.DataAnnotations.MetadataType(typeof(WidgetMetadata))]
public partial class Widget
{
}
/// <summary>
/// This part is hand-coded, and any validation attributes I add work fine.
/// </summary>
public class WidgetMetadata
{
[System.ComponentModel.DefaultValue("Default Name")]
[StringLengthValidator(0, RangeBoundaryType.Inclusive, 320, RangeBoundaryType.Inclusive, Tag = "Invalid string length", MessageTemplate = "{1} must contain between \'{3}\' to \'{5}\' characters.")]
public string Name { get; set; }
}
我做错了什么?或者这是否不受支持(如果支持,是否有任何记录?)
最佳答案
将构造函数添加到 WidgetMetaData
类,并在那里设置属性的默认值。 DefaultValueAttribute
用于 Visual Studio 工具箱(我相信)以确定值是否应为粗体(更改)或不(默认值)等。您仍然需要在某些时候设置该属性的值。
public WidgetMetaData()
{
Name = "Default Value";
}
有关 DefaultValueAttribute
的更多信息:http://msdn.microsoft.com/en-us/library/system.componentmodel.defaultvalueattribute(v=vs.71).aspx
关于c# - 在用作 MetadataTypeAttribute 中的类型的类上使用 DefaultValueAttribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4741909/
我一直在使用 MetadataType 属性向我使用 T4 模板生成的类添加验证属性。这非常有效,但我希望能够在某些属性上使用 DefaultValue 属性,这样我的 MetadataType 类将
正如标题所说,我在序列化自动生成的 POCO 对象时遇到了一些问题。但首先要了解一些背景信息: 我已经按照本指南使用 EF 4.0 en ADO.Net POCO 实体生成器创建了我的数据访问层:ht
我想在 MVC6 项目中使用 MetaDatatType 属性,但它似乎尚不可用。我正在使用 7.0.0-rc1-final 所以它应该是最新的。 有谁知道它是否在另一个程序集中? 我收到错误,找不到
这是它现在如何工作的示例: [MetadataType(typeof(PersonMetadata))] public class Person { public string Name {
我是一名优秀的程序员,十分优秀!