Der Fehler Ich erhalte ist:Warum Reference.cs (WCF-Service Referenz) mit der falschen Methode Signatur erzeugt erhalten
Argument 2: von 'System.Tuple []' in ‚Tester nicht konvertieren .CommService.TupleOfstringSqlDbTypeanyTypep2GUUk_Sk []‘
der folgenden Optionen:
CommService.CommServiceClient client = new CommService.CommServiceClient();
Tuple<string, System.Data.SqlDbType, object>[] parameters = new Tuple<string, System.Data.SqlDbType, object>[] {
new Tuple<string, System.Data.SqlDbType, object>(
paramName,
System.Data.SqlDbType.Int,
projectid)};
client.Open();
string myValue = client.getScalar(procName, parameters);
client.Close();
die eigentliche Methode Signatur ist:
string getScalar(string procedure, IEnumerable<Tuple<string, SqlDbType, object>> parameters);
Ich habe versucht, die Service-Referenz zu löschen und neu hinzuzufügen.
Ich habe auch versucht, die Service-Referenz zu konfigurieren, die Option 'Typen in referenzierten Assemblys wiederverwenden' zu deaktivieren und dann die Service-Referenz zu aktualisieren.
Ich habe versucht, Folgendes zu verwenden, aber es erzeugt auch den gleichen Fehler.
CommService.ICommService service = new CommService.CommServiceClient();
CommService.getScalarRequest request = new CommService.getScalarRequest(procName, parameters);
service.getScalar(request);
Ich habe bemerkt, dass die Reference.cs auch die folgenden enthält:
// CODEGEN: Parameter 'getScalarResult' requires additional schema information that cannot be captured using the parameter mode. The specific attribute is 'System.Xml.Serialization.XmlElementAttribute'.
ich diesen Dienst Referenz verwendet haben und die gleiche Methode auch in anderen Projekten, ohne Frage.
WCF ist standardmäßig interoperabel, und daher wäre es ratsam, .NET spezifische Typen wie 'Tuple' zu verwenden *. –