Früher lief ich in ein Problem versucht, eine Typdefinition zwischen meinem ASMX webservice zu teilen und meiner ASPX-Seite (Webclient)Kopieren Array von Objekten Array von einer anderen Typ
Confused on C# Array of objects and implicit type conversion
Wie ich das verstehen Hinweis: Das "Problem", das dadurch entsteht, kann gelöst werden, indem das im Client erstellte Array von Objekten in ein neues Array von Objekten kopiert wird, wie es von der ASMX-Proxy-Klasse definiert wird.
Als Rookie in C# kämpfe ich immer noch mit dieser einfachen Aufgabe. Hier mehr Teile meines Codes sind (die anderen Fragmente in der früheren Post bleiben unverändert):
... hier ist, wo ich die „Testdaten“ bevölkern ich an den Webdienst übergeben möchten:
// create an array of MetaData objects
MetaData[] nvPairs = new MetaData[20]; // arbitrary length of 20 pairs
// create arbitrary MetaData objects in the array
nvPairs[0] = new MetaData("Grant Number", "2577-9912");
nvPairs[1] = new MetaData("OPEAnalyst", "Simpson");
... hier versuche ich, eine Funktion definiert „Kopie“ von „echtem“ Typ in meinem TRIMBrokerUtil Namespace (die ich nicht vollständig, weil der Proxy verwenden) an die Proxy-Version dieses Typs:
protected TRIMBrokerASMXProxy.ASMXProxy.MetaData[] CopyMetaData(
MetaData utilArray)
{
TRIMBrokerASMXProxy.ASMXProxy.MetaData[] outArray =
new TRIMBrokerASMXProxy.ASMXProxy.MetaData[utilArray.Name.Length];
int i;
for (i = 0; i < utilArray.Name.Length; i++)
{
outArray[i].Name = utilArray.Name;
outArray[i].Value = utilArray.Value;
}
return outArray;
}
... und dann hier ist, wo ich versuche, diese Funktion aufzurufen (Compiler markiert 2 Fehler auf diesem lin e:
TRIMBrokerASMXProxy.ASMXProxy.MetaData[] kvData =
CopyMetaData(metaDataArray);
Beide der Kompilierung Fehler unter Punkt auf der gleichen Linie:
Fehler 1 Die beste überladene Methode Spiel für ‚_Default.CopyMetaData (TRIMBrokerUtil.MetaData)‘ einige ungültige Argumente hat
Fehler 2 Argument '1': Konvertierung von 'TRIMBrokerUtil.MetaData []' zu 'TRIMBrokerUtil.MetaData' nicht möglich
Bin ich in der Nähe?
Alle hageln König Jon .. + 1. Eine kurze Frage, ich mag es, die Liste zu verwenden und dann mit ToArray() zurückzukehren. Ich benutze gerne Listen, da ich keine Indizes wie i verwende. Töte ich die Performance, indem ich das tue? –
Perpetualcoder
Nun, Sie sind Leistung, aber wahrscheinlich nicht signifikant. Wenn ich von einem Array * zu * einem Array konvertiere, würde ich wahrscheinlich nicht über eine Liste gehen, aber sobald es irgendwelche Zweifel über die Länge des Endergebnisses gibt, werde ich eine Liste für die Bequemlichkeit verwenden. Vergessen Sie nicht Array.ConvertAll obwohl :) –
Wow! Wo ist das Trinkgeldglas? Du bist ein Heiliger und so gut, um mir so zu helfen. Ich lerne langsam und ich danke dir wirklich für deine freundliche Hilfe. –