Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何向生成的类(web服务代理)的属性添加属性?_C#_Silverlight_Web Services_Proxy Classes_Dataform - Fatal编程技术网

C# 如何向生成的类(web服务代理)的属性添加属性?

C# 如何向生成的类(web服务代理)的属性添加属性?,c#,silverlight,web-services,proxy-classes,dataform,C#,Silverlight,Web Services,Proxy Classes,Dataform,我有一个Silverlight3应用程序,它从web服务获取数据。当我添加对web服务的引用时,web服务使用的所有类都在代理类中定义。到目前为止,一切都很好。。。现在,我想使用Silverlight3中提供的数据表单。要使用该组件,我必须向类中添加元数据(例如,请参见下面的代码) 我的问题是,考虑到类Movie是在.NET生成的代理类中定义的,如何在不修改生成的类的情况下将attributes/metadeta添加到Movie类的属性中 简言之,谢谢你;你没有。不要编辑生成的代码,因为您所做的

我有一个Silverlight3应用程序,它从web服务获取数据。当我添加对web服务的引用时,web服务使用的所有类都在代理类中定义。到目前为止,一切都很好。。。现在,我想使用Silverlight3中提供的数据表单。要使用该组件,我必须向类中添加元数据(例如,请参见下面的代码)

我的问题是,考虑到类Movie是在.NET生成的代理类中定义的,如何在不修改生成的类的情况下将attributes/metadeta添加到Movie类的属性中


简言之,谢谢你;你没有。不要编辑生成的代码,因为您所做的更改将在下次生成时丢失


相反,在应用程序中创建您自己的
Movie
类,并创建将生成的
Movie
代理类转换为内部
Movie
类(及其后)的方法,然后使您的内部类具有所需的行为。我通常在较低的级别将其包装在一起,这样我的大多数代码就永远看不到生成的代理类;你没有。不要编辑生成的代码,因为您所做的更改将在下次生成时丢失


相反,在应用程序中创建您自己的
Movie
类,并创建将生成的
Movie
代理类转换为内部
Movie
类(及其后)的方法,然后使您的内部类具有所需的行为。我通常在较低的级别将其包装在一起,这样我的大多数代码就不会看到生成的代理类。

如果您真的需要向生成的类添加一些内容,您仍然可以使用分部类来实现,而无需修改生成的类中的任何内容。

如果您确实需要向生成的类添加某些内容,您仍然可以使用分部类来实现,而无需修改生成的类中的任何内容。

如果可以将web服务转换为使用.NET RIA服务,您可以使用此技术将属性应用于属性,而无需使用包装类:


使用RIA服务,您可以在服务器端应用属性-代码生成器足够智能,可以在生成代码时拾取属性并在客户端应用属性。

如果可以将web服务转换为使用.NET RIA服务,您可以使用此技术将属性应用于属性,而无需使用包装类:


使用RIA服务,您可以在服务器端应用属性-代码生成器足够智能,可以在生成代码时将属性提取并应用到客户端。

要清楚:您可以添加成员,但不能向现有成员添加元数据。@Marc,我不确定这是否是一种方法,要清楚:您可以添加成员,但您不能向现有成员添加元数据。@Marc,我不确定这是否是一种方法,
public class Movie : IEditableObject
{
    public int MovieID { get; set; }

    [Display(Name="The Movie Name")]
    public string Name { get; set; }    
}