Próbuję sprawić, aby moja aplikacja (dla Windows 10) działała pod .NET natywnym..net-native enum.GetValues Problem
Utknąłem z następującym problemem: Enum.GetValues
kończy się niepowodzeniem w środowisku wykonawczym z brakującymi metadanymi. Udało mi się uprościć testowanie tego problemu (w rzeczywistości mój kod wygląda inaczej). W przenośnej biblioteki mam:
public enum enumValues
{
A1,
B1,
C1,
}
public class fff
{
public static object GetClass2Value()
{
return enumValues.B1;
}
}
w mojej aplikacji systemu Windows Uniwersalny wzywam następujący kod:
Array aaa = Enum.GetValues(fff.GetClass2Value().GetType());
Otrzymuję następujący wyjątek:
Informacje dodatkowe: „enumlibportable.enumValues [] "brakuje metadanych.
Problem polega na tym, że nie mam pojęcia, co dodać do pliku Default.rd.xml. Próbowałem dodać różne ciągi rd (podtyp emum, klasa enumValues, enumValues [] itp.) Przy użyciu narzędzia Microsoft http://go.microsoft.com/fwlink/?LinkID=392859, ale nie miałem szczęścia.
UPDATE: wiem, że następujący kod będzie działać na moim testcase Enum.GetValues(typeof(enumValue))
, ale nie można go używać w moim realnym projektem, ponieważ nie wiem dokładnie typ enum w moim realnym projektem.
Zakładam prawdziwy kod to jest przypadek podklasy/interfejsu? Czy mógłbyś trochę to rozwinąć? – Nyerguds
Cóż, zbyt dużo czasu zajmuje mi wyjaśnienie mojego prawdziwego projektu, dlatego poświęcam dużo czasu na znajdowanie przyczyny problemu i przygotowanie próbki. Opisałem wystarczająco dobrze mój problem. Problem polega na tym, że optymalizacja usuwa metadane enum, ponieważ nie jest jawnie przywoływana w aplikacji. Muszę powiedzieć kompilatorowi, aby nie usuwał tych metadanych. –
Nie możesz utworzyć typu zwrotnego? – Herdo