未使用MetadataType加载元数据

我对MetadataType有一些问题。我已经有了DLL

helper-project,用于使用LinqToSQL从MS SQL

Server进行数据访问。我还需要为生成的类ClientInfoView添加元数据。我已经按照以下方式完成了:

using System;

using System.ComponentModel.DataAnnotations;

using System.ComponentModel;

namespace DataAPI.LINQToSQL

{

[MetadataType(typeof(ClientInfoViewMetaData))]

public partial class ClientInfoView

{

internal sealed class ClientInfoViewMetaData

{

[Category("Main Data"), DisplayName("Client ID")]

public int ID { get; set; }

[Category("Main Data"), DisplayName("Login")]

public string Login { get; set; }

...

}

}

}

但是,当我在运行时检查属性时,我发现ClientInfoView没有任何属性。

你能帮我发现一个错误吗?

回答:

要给出部分答案,可以检查ClientInfoView是否具有属性。一些对我有用的小演示。仍在尝试查找为什么我无法在ClientInfoViewMetaData单个属性中访问那些属性的原因

    static void Main(string[] args)

{

TypeDescriptor.AddProviderTransparent(

new AssociatedMetadataTypeTypeDescriptionProvider(typeof(ClientInfoView), typeof(ClientInfoViewMetaData)), typeof(ClientInfoView));

ClientInfoView cv1 = new ClientInfoView() { ID = 1 };

var df = cv1.GetType().GetCustomAttributes(true);

var dfd = cv1.ID.GetType().GetCustomAttributes(typeof(DisplayNameAttribute), true);

var context = new ValidationContext(cv1, null, null);

var results = new List<ValidationResult>();

var isValid = Validator.TryValidateObject( cv1,context, results, true);

}

}

[MetadataType(typeof(ClientInfoViewMetaData))]

public partial class ClientInfoView

{

public int ID { get; set; }

public string Login { get; set; }

}

public class ClientInfoViewMetaData

{

[Required]

[Category("Main Data"), DisplayName("Client ID")]

public int ID { get; set; }

[Required]

[Category("Main Data"), DisplayName("Login")]

public string Login { get; set; }

}

以上是 未使用MetadataType加载元数据 的全部内容, 来源链接: utcz.com/qa/399459.html

回到顶部