Question

J'ai vu cette question posée dans diverses incarnations autour du Web, mais jamais une réponse définitive.Et comme c'est le forum pour des réponses définitives ...

J'utilise WCF pour fournir les objets d'entité pour mon client Silverlight, basé sur une base de données SQL.

J'aimerais étendre la classe pour cet objet uniquement sur le côté du client.Je suis intéressé par la création de propriétés qui ont un sens à la liaison seulement et n'ont pas de sens à stocker dans l'objet principal.Est-il possible d'étendre cette classe?Sinon, y a-t-il une "meilleure pratique" pour faire ce genre de chose?

merci, WTS

Était-ce utile?

La solution

Les classes générées ont en fait le modificateur "partiel", il est donc possible de les étendre.

Par exemple, ce Datacontract:

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

peut être étendu sur le côté du client de cette manière:

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

Remarque du nom de l'espace de noms, il doit être identique à l'espace de noms d'une référence de service.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top