![](/img/trans.png)
[英]How to add SoapExtension attribute to generated web service client proxy without modifying the generated class?
[英]How to add attributes to properties of a class generated (web service proxy)?
我有一個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; }
}
我的問題是,考慮到Movie類是在.NET生成的代理類中定義的,如何在不修改生成的類的情況下將屬性/ metadeta添加到Movie類的屬性中?
謝謝
簡而言之; 你不知道 不要編輯生成的代碼,因為您的更改將在下次生成時丟失。
而是,在應用程序中創建自己的Movie
類,並創建將生成的Movie
代理類轉換為內部Movie
類(並向后轉換)的方法,然后使內部類具有所需的行為。 我通常將其包裝在較低的級別,以使我的大多數代碼都看不到生成的代理類。
如果可以將Web服務轉換為使用.NET RIA Services,則可以使用此技術將屬性應用於屬性,而無需使用包裝器類:
借助RIA Services,您可以在服務器端應用屬性-代碼生成器足夠智能,可以在生成代碼時將其選中並應用到客戶端。
如果確實需要在生成的類中添加一些內容,則仍可以使用部分類來實現而無需在生成的類中進行任何修改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.