C# 从外部dll向类添加属性

C# 从外部dll向类添加属性,c#,asp.net-mvc,attributes,data-annotations,C#,Asp.net Mvc,Attributes,Data Annotations,我已经编写了一个桌面应用程序,现在正在开发同一程序的ASP.NETMVC版本。许多业务模型都在.dll库中,我在桌面程序和MVC程序之间共享该库 我想使用MVC的特性,比如验证,但为此,我需要向.dll中定义的模型类添加属性。因为这是我自己的图书馆,我可以做,但如果我需要使用我无法访问的图书馆怎么办。什么是最佳实践?像这样写一个包装类 作为一个例子,让它成为.dll中的一个简单类 public class A { public string Name {get; set;} pu

我已经编写了一个桌面应用程序,现在正在开发同一程序的ASP.NETMVC版本。许多业务模型都在.dll库中,我在桌面程序和MVC程序之间共享该库

我想使用MVC的特性,比如验证,但为此,我需要向.dll中定义的模型类添加属性。因为这是我自己的图书馆,我可以做,但如果我需要使用我无法访问的图书馆怎么办。什么是最佳实践?像这样写一个包装类

作为一个例子,让它成为.dll中的一个简单类

public class A {
    public string Name {get; set;}
    public A(string _name){
        this.Name = _name
    }
}
在MVC项目中,我希望使用
A
,但也希望向其属性添加数据注释。然后我可以定义一个新类,如下所示:

public class A_Web {
    private _a;

    [Required(ErrorMessage = "A Name is required")]
    public string Name {get {return _a.Name;} set {_a.Name = value;}}

    public A_Web(string _name){ 
        this._a = new A(_name)
    } 
}

有更好的办法吗?对于更大的类,这似乎有很多代码…

使用和工具,例如在数据模型和视图模型之间进行映射我使用纯数据类的方法是,我刚刚定义了一个接口并编程到此接口。viewmodel可以实现此接口,您可以使用dataanotations@Florian,如果向您提供了数据类,则这没有帮助。而且,这似乎并不比我上面建议的代码少。@Toog抱歉,我忽略了您对库没有影响的部分。通常使用这种技术,您可以将定义与实现分离,并获得这种灵活性(这需要一点代码)。但在这种情况下。。。automapper解决方案似乎是最好的。