WCF - Oggetto come tipo noto -> interoperabile?
-
12-11-2019 - |
Domanda
In realtà dovrebbe esserci una risposta diretta a questa domanda (riguarda la proprietà "Object" di seguito):
Avere il seguente contratto di dati:
[KnownType(typeof(bool))]
[KnownType(typeof(int))]
[KnownType(typeof(string))]
[KnownType(typeof(Customer))]
[KnownType(typeof(Client))]
public class Transaction
{
// properties
[DataMember(Name = "UID")]
public int UID{}
[DataMember(Name = "Type")]
public Enums.TransactionType Type{}
[DataMember(Name = "Data")]
public Object Data{}
}
.
e il seguente contratto di assistenza:
public interface IService
{
[OperationContract(Name = "GetData")]
List<Transaction> GetTransact();
}
.
sarà interoperabile?Dire da Java, Gsoap?In caso contrario, come posso renderlo interoperabile?
Grazie.
Modifica: Voglio solo sapere se WCF sa come serializzare / deserializzare l'oggetto da / nei tipi noti definiti.
Soluzione
Dovrebbe andare bene finché il client può generare correttamente i tipi dal WSDL.Ad esempio, a seconda del client, potrebbe modificare il List<Transaction>
di C # s in un Transaction[]
o qualcosa di abbastanza equivalente.Dovrai anche selezionare il tipo di rilegatura destro.Di solito Basichttpbinding ha i migliori risultati per l'interoperabilità.