Как добавить атрибуты в свойства сгенерированного класса (прокси веб-сервиса)? - PullRequest
0 голосов
/ 22 июля 2009

У меня есть приложение Silverlight 3, которое получает данные из веб-службы. Когда я добавляю ссылку на свой веб-сервис, все классы, используемые веб-сервисом, определяются в прокси-классе. Пока все хорошо ... Теперь я хотел бы использовать DataForm, предлагаемый в Silverlight 3. Чтобы использовать этот компонент, я должен добавить метаданные в свой класс (например, см. Код ниже).

public class Movie : IEditableObject
{
    public int MovieID { get; set; }

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

У меня такой вопрос, учитывая, что класс Movie определен в прокси-классе, созданном в .NET, как добавить атрибуты / метадеты в свойства класса Movie без изменения сгенерированного класса?

Спасибо

Ответы [ 3 ]

2 голосов
/ 22 июля 2009

Короче говоря; ты не Не редактируйте сгенерированный код, так как ваши изменения будут потеряны при следующем создании.

Вместо этого создайте свой собственный класс Movie внутри своего приложения и создайте методы, которые преобразуют сгенерированный прокси-класс Movie в ваш внутренний Movie класс (и обратно), а затем заставьте ваш внутренний класс вести себя нужным образом. Я обычно оборачиваю это на низком уровне, чтобы большая часть моего кода никогда не видела сгенерированные прокси-классы.

1 голос
/ 22 июля 2009

Если существует возможность преобразования вашего веб-сервиса в .NET RIA Services, вы можете использовать этот метод для применения атрибутов к свойствам без использования класса-оболочки:

http://blogs.msdn.com/brada/archive/2009/07/21/business-apps-example-for-silverlight-3-rtm-and-net-ria-services-july-update-part-7-services-based-data-store.aspx

С помощью RIA Services вы применяете атрибуты на стороне сервера - генератор кода достаточно умен, чтобы подобрать их и применить на стороне клиента, также когда он генерирует код.

0 голосов
/ 22 июля 2009

Если вам действительно нужно добавить что-то в сгенерированный класс, вы все равно можете использовать частичный класс, чтобы добиться чего-либо, не изменяя ничего внутри сгенерированного класса.

...