ho creato un servizio WCF e al servizio predefinito ho aggiunto un altro contratto operazione sul DataContract principale:Operazione non supportata nel client di prova WCF
[OperationContract]
void DoSomething(UserData data);
poi ho qualcosa di simile (semplificato al fine di esempio) di seguito. Il problema è che anche se TUTTE le classi nella gerarchia sono decorate con DataContract e TUTTI i loro membri decorati con DataMember, quando utilizzo il Client Test WCF ha un'icona rossa che indica che "l'operazione non è supportata nel client di test WCF".
[DataContract]
public class UserData {
[DataMember]
public uint One { get; set; }
[DataMember]
public CompositeType Extra { get; set; }
public UserData() { ctor. code }
}
[DataContract]
public class CompositeType {
[DataMember]
public uint Two { get; set; }
public UserData() { ctor code }
}
Vedo due classi con lo stesso nome, ma ne manca tipo composito, che cosa si intende per esso? Hai anche dimenticato di pubblicare la classe del tipo composito. – Silvermind
Vedo che stai parlando di gerarchia. Stai implementando qualche tipo di relazione ricorsiva? Poiché ciò richiederebbe la classe ricorsivamente utilizzata per essere decorata con '[DataContract (IsReference = True)]' – Silvermind
@Silvermind errore di errore mi dispiace, il 2o (già corretto) era CompositeType e non UserData. Ho anche aggiunto il parametro IsReference ai sottotipi utilizzati nel DataContract principale ma questo non risolve il problema. –