Ich versuche, meine app (für Windows 10) arbeiten unter .NET heimisch zu machen..net-native enum.GetValues Probleme
habe ich mit folgendem Problem stecken: Enum.GetValues
nicht zur Laufzeit mit Metadaten fehlen. Ich habe es geschafft, den Testfall für dieses Problem zu vereinfachen (im wirklichen Leben sieht mein Code anders aus). In tragbaren Bibliothek habe ich:
public enum enumValues
{
A1,
B1,
C1,
}
public class fff
{
public static object GetClass2Value()
{
return enumValues.B1;
}
}
In meinem Universal-Windows-Anwendung ich den folgenden Code aufrufen:
Array aaa = Enum.GetValues(fff.GetClass2Value().GetType());
ich die folgende Ausnahme:
Zusätzliche Informationen: ‚enumlibportable.enumValues [] 'fehlen Metadaten.
Das Problem ist, dass ich keine Ahnung habe, was zu Default.rd.xml hinzugefügt werden soll. Ich habe versucht, verschiedene Rd-Zeichenfolgen (enum Subtype, enumValues-Klasse, enumValues [] usw.) mit Microsoft-Tool http://go.microsoft.com/fwlink/?LinkID=392859 hinzufügen, hatte aber kein Glück.
UPDATE: Ich weiß, dass der folgende Code wird Enum.GetValues(typeof(enumValue))
für meinen Testfall arbeiten, aber ich kann es nicht in meinem realen Projekt verwenden, da ich weiß nicht, den genauen Enum-Typen in meinem realen Projekt.
Ich gehe davon aus, den echten Code ist ein Unterklassen-/Interface-Fall? Können Sie das bitte etwas näher ausführen? – Nyerguds
Nun, es ist zu lang, um mein wirkliches Projekt zu erklären, deshalb verbringe ich viel Zeit damit, die Ursache des Problems zu finden und die Probe vorzubereiten. Ich habe mein Problem gut genug beschrieben. Das Problem besteht darin, dass die Optimierung die Enum-Metadaten löscht, da sie in der Anwendung nicht explizit referenziert wird. Ich muss dem Compiler mitteilen, dass er diese Metadaten nicht löschen soll. –
Können Sie nicht den Rückgabetyp generisch machen? – Herdo