Sto provando a far funzionare la mia app (per Windows 10) su nativo .NET..net-native enum.GetValues trouble
Mi sono bloccato con il seguente problema: Enum.GetValues
non riesce in fase di esecuzione con i metadati mancante. Sono riuscito a semplificare il test per questo problema (nella realtà il mio codice sembra diverso). In libreria portabile che ho:
public enum enumValues
{
A1,
B1,
C1,
}
public class fff
{
public static object GetClass2Value()
{
return enumValues.B1;
}
}
Nella mia app universale di Windows che io chiamo il seguente codice:
Array aaa = Enum.GetValues(fff.GetClass2Value().GetType());
ricevo la seguente eccezione:
Ulteriori informazioni: 'enumlibportable.enumValues [] 'mancano i metadati.
Il problema è che non ho idea di cosa aggiungere a Default.rd.xml. Ho provato ad aggiungere diverse stringhe rd (sottotipo enum, classe enumValues, enumValues [] ecc.) Usando lo strumento microsoft http://go.microsoft.com/fwlink/?LinkID=392859, ma non ho avuto fortuna.
UPDATE: so che il seguente codice funzionerà per il mio testcase Enum.GetValues(typeof(enumValue))
, ma non posso utilizzare nel mio progetto reale dal momento che non si conosce il tipo esatto enum nel mio progetto reale.
Suppongo il codice vero e proprio è un caso di sottoclassi/interfaccia? Puoi approfondire un po 'questo? – Nyerguds
Beh, è troppo lungo per spiegare il mio vero progetto, ecco perché passo molto tempo a trovare la causa del problema e preparare il campione. Ho descritto abbastanza bene il mio problema. Il problema è che l'ottimizzazione cancella i metadati enum poiché non viene fatto riferimento nell'applicazione in modo esplicito. Devo dire al compilatore di non cancellare questi metadati. –
Non puoi rendere generico il tipo di reso? – Herdo