Ich erhalte einen Fehler von System.MissingMethodException, nachdem ich einen optionalen Parameter in einer Komponente und die andere Komponente, die es aufgerufen wurde nicht erstellt wurde, wie es mit einer alten Anzahl von Parametern aufrufen.System.MissingMethodException nach dem Hinzufügen eines optionalen Parameters
Nur die Komponente, in der der Parameter hinzugefügt wurde, wurde als Patch erstellt. Die aufrufende Komponente ist alt, da es keine Änderung gibt.
Wenn der anrufende Komponente Lauf es Fehler gibt:
Exception Informationen
Ausnahmetyp: System.MissingMethodException Nachricht: Methode nicht gefunden: ‚LabelURLs IPSD.BnB.Transaction.Postage.GetLabelURLs (System.String) '. Daten: System.Collections.ListDictionaryInternal Target: Void GenerateScanForm (Int32, Int32) Help: NULL Quelle: BnBDispenseQueueProcess
Soweit ich weiß, dass es keinen Fehler sollte als neuer Parameter ist optional. Eine weitere Komponente aufrufen (EXE) als Windows-Dienst ausführen.
haben wir eine sehr verkabelte Problemumgehung gefunden, um es auszuführen. Indem Sie die geänderte Komponente einmal entfernen und eine aufrufende Komponente ausführen, die sagt, dass die DLL nicht gefunden wurde. Der Ort die gleiche DLL wieder und aufrufende Komponente funktioniert gut :).
Ich denke, ich vermisse einige Interna von .net.
Lassen Sie mich wissen, wenn mehr Informationen benötigt werden.
Wir fügten optionalen Parameter zu einer unserer allgemeinen Bibliothek hinzu. Das hat alle laufenden Module gebrochen (Wir haben Glück, es war auf dem Testen von env). Das sind phantastische Entwicklungszeit-Features von .net, es sieht so aus, als müssten wir sie erst einmal verstehen, bevor wir sie benutzen. Danke, dass du das fragst. – CreativeManix
@CreativeManix lassen Sie mich bitte Ihr Ergebnis wissen. da konnte man nicht ganz verstehen warum es sich so verhielt. kann ein Kompiliertrick geschehen hinter Szene – sandeep
@Sanddep als Jon Skeet erwähnt, optionale Parameter sind Kompilierzeit Feature. Bei der Kompilierzeit in der Anruferassemblierung werden optionale Parameterwerte mit Standardwerten übergeben. Wenn Sie der allgemeinen Bibliothek einen optionalen Parameter hinzugefügt haben, stellen Sie sicher, dass Sie auch die Aufrufer-Assembly kompilieren. Wenn Sie nicht alle Aufrufer-Assembly kompilieren möchten, verwenden Sie keinen optionalen Parameter, sondern stattdessen eine überladene Methode. – CreativeManix