Går det att returnera ett interface från en WCF-service? Error 1 Attribute 'DataContract' is not valid on this declaration type. It is only valid on 'class, struct, enum' declarations. Ämnet har blivit allt mer akut. Generellt Nej! http://www.pluralsight.com/community/blogs/aaron/archive/2008/05/13/50934.aspx Ni glömer en sak. DataContract är för WCF vad Serializable är för .Net. Det finns dock en lösning på ditt problem. Problemet är att mottagaren inte har en aning om hur den skall skapa ett IReadOnlyData objekt.Returnera Interface från WCF-service?
Jag försökte med
[DataContract]
public interface IReadOnlyData
men kompilatorn är gnällig.
Sv:Returnera Interface från WCF-service?
Sv: Returnera Interface från WCF-service?
Det jag försöker åstadkomma är att klienten inte ska kunna förändra det returnerade objektets egenskaper. Jag provade att returnera ett objekt med bara get-properties, men när jag uppdaterar servicen får jag felmeddelandet att set-properties.
Hur kan jag åstadkomma detta? Sv:Returnera Interface från WCF-service?
Du kan inte returnera ett Interface fran en WCF Services. Irriterande helt klart (tycker iallafall jag). Jag har dock sett nagonstans en losning runt detta problem dar man kunde returenera ett interface fran en WCFservices. Kommer dock inte ihag lanken, men jag tror nycklen till problemet ar attributet [Kno
wType()] om jag inte missminner mig.
Angende Get/Set sa beror det pa serializeringen, har du testat att satta private set propertys det kanske fungerar...
- MSv:Returnera Interface från WCF-service?
Gillade denna artikeln, dock löste det inte mitt problem då Silverlight i mitt fall inte stödjer [Serializable].
Har du [Serializable] på dina objekt så skall den enligt artikeln bara ta dom privata fälten :).Sv: Returnera Interface från WCF-service?
Flytta din DataContract i en separat bibliotek, läg den data du vill visa som en privat variabel med DataMember på sig, och sen lägg en read only property på den. Sen lägg den bilbiotek som referens i din klient application och updatera din Service referens. Det är allt. :)
/TibiSv: Returnera Interface från WCF-service?
Jag tycker att man borde kunna använda knowntype på interface men om det inte går får du skapa en abstrakt klass istället.
[DataContract]
[KnownType(typeof(Derived1))]
[KnownType(typeof(Derived2))]
public abstract class Base : IReadOnlyData
[DataContract]
public class Derived1 : Base