我有一个Silverlight 3应用程序,它从Web服务获取数据。当我添加对Web服务的引用时,Web服务使用的所有类都在代理类中定义。到目前为止,非常好......现在,我想使用Silverlight 3中提供的DataForm。要使用该组件,我必须向我的类添加元数据(例如,请参阅下面的代码)。
public class Movie : IEditableObject
{
public int MovieID { get; set; }
[Display(Name="The Movie Name")]
public string Name { get; set; }
}
我的问题是,考虑到在.NET生成的代理类中定义了Movie类,如何在不修改生成的类的情况下将属性/ metadeta添加到Movie类的属性中?
由于
答案 0 :(得分:2)
总之;你没有。不要编辑生成的代码,因为下次生成时您的更改将会丢失。
相反,在应用程序中创建自己的Movie
类,并创建将生成的Movie
代理类转换为内部Movie
类(并返回)的方法,然后创建内部class有所需的行为。我通常将它们包含在一个较低的级别,以便我的大多数代码永远不会看到生成的代理类。
答案 1 :(得分:1)
如果将Web服务转换为使用.NET RIA Services,则可以使用此技术将属性应用于属性,而无需使用包装类:
使用RIA服务,您可以在服务器端应用这些属性 - 代码生成器足够智能,可以在客户端应用它们并在生成代码时应用它们。
答案 2 :(得分:0)
如果你真的需要在生成的类中添加一些东西,你仍然可以使用partial类来实现而不需要在生成的类中修改任何东西。