'da tür olarak kullanılan bir sınıfta DefaultValueAttribute kullanarak, bir T4 şablonu kullanarak oluşturduğum sınıflara doğrulama öznitelikleri eklemek için MetadataType özniteliğini kullanıyorum. Bu harika çalışır, ancak bazı özelliklerdeki DefaultValue özniteliğini kullanabilmeyi isterim, böylece MetadataType sınıfım sınıflarımı tamamen açıklar (ve böylece bu sınıflarda OnCreated yöntemini uygulamak zorunda kalmayacağım). . Özniteliği MetadataType sınıfıma ekleyebilirim, ancak hiçbir etkisi yoktur.Bir MetadataTypeAttribute
İşte bazı örnek kaynak - oluşturulan bölüm (tabii ki) farklı bir dosyada. Bir Widget nesnesini başlatırsam, Name özelliği boş olacaktır.
/// <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; }
}
sorunu gösteriyor asgari yaşayabilir kaynak kod örneği sağlayın. –
Evet, kimsenin bunu bir kaynak olmadan alacağını düşünmemiştim. –