Silverlight - Расширение класса WCF в клиенте - PullRequest
0 голосов
/ 15 февраля 2011

Я видел этот вопрос, задаваемый в разных воплощениях по всему Интернету, но никогда не получал окончательного ответа.И поскольку это форум для окончательных ответов ....

Я использую WCF для предоставления объектов Entity для моего клиента Silverlight на основе базы данных SQL.

Я бы хотел расширить класс для этого объекта только на стороне клиента.Я заинтересован в создании свойств, которые имеют смысл только для привязки, и не имеют смысла хранить в основном объекте.Можно ли расширить этот класс?Если нет, то есть ли «лучшая практика» для подобных действий?

Спасибо, wTs

1 Ответ

1 голос
/ 15 февраля 2011

Сгенерированные классы действительно имеют модификатор 'частичный', поэтому их можно расширять.

Например, этот DataContract:

[DataContract]
public class TestObject
{
    [DataMember]
    public int Id { get; set; }
    [DataMember]
    public string Title { get; set; }
}

Может быть расширен на стороне клиента втаким образом:

namespace SilverlightTest.ServiceReference1
{
    public partial class TestObject
    {
        public string ExtendedTitle
        {
            get { return this.Id+" "+this.Title; }
        }
    }
}

Обратите внимание на имя пространства имен, оно должно совпадать с пространством имен ссылки на службу.

...