MonoGame (framework, który zasadniczo przenosi XNA na Windows Phone 8) ma wszystkie przestrzenie nazw z prefiksem Microsoft.Xna.Framework
Uważam, że minimalizuję ilość zmian kodu wymaganych podczas przenoszenia aplikacji XNA do MonoGame.Niejednoznaczne odwołanie między przestrzeniami MonoGame i Microsoft.XNA.Framework
Mój problem polega na tym, że chcę uzyskać dostęp do klasy Microphone
, która, ponieważ nie została jeszcze utworzona w MonoGame, muszę ją wykorzystać od wewnątrz w oficjalnej klasie Microsoft XNA, wymaga to wyraźnego wymuszonego usunięcia standardowe referencje w pliku .csproj, które mój szablon MonoGame skonfigurował w celu uniknięcia konfliktów, który działa świetnie, a teraz jest dostępny, ale stworzyłem niejasność między kilkoma kluczowymi klasami, które istnieją zarówno w standardowym wydaniu Microsoftu, jak i MonoGame.
Błędy otrzymuję to:
Niejednoznaczne referencyjny:
Microsoft.Xna.Framework.Color
Microsoft.Xna.Framework.Color
To oczywiście miało miejsce, ponieważ obok Standardowa biblioteka XNA wydana przez Microsoft, mam odniesienie do MonoGame.Framework.dll
, która przydziela przestrzeń nazw, tworząc tę niejednoznaczność. Jednak we wszystkich przypadkach chcę uzyskać dostęp do wersji MonoGame.
Jakieś pomysły, w jaki sposób mogę wyraźnie powiedzieć kompilatorowi, aby używał klasy MonoGame w klasie Color
i Vector2
, a nie oficjalnej wersji Microsoft?
Każda próba w using Color = Microsoft.Xna.Framework
oczywiście nie zadziała, ponieważ oba są oznaczone tak samo w skompilowanych bibliotekach dll!
Jeśli przestrzenie nazw są identyczne, wydaje się, że będziesz musiał przekompilować MonoGame, aby użyć innej przestrzeni nazw. Jedyną alternatywą jest utworzenie opakowania dla kilku metod, których chcesz użyć. Upewnij się, że wyraźnie określasz, z którego punktu odniesienia chcesz korzystać w tej nowej klasie. Ostrzegam również w odniesieniu do używania XNA, ponieważ Microsoft zasadniczo zaprzestał jego rozwoju. –
Dzięki, rozważę opakowanie ... mam nadzieję na coś bardziej eleganckiego. – GONeale
Chcesz użyć obu odniesień i oba mają dokładnie tę samą przestrzeń nazw, co problem z MonoGame, nie ma eleganckiego rozwiązania. Oczywiście mam poważne wątpliwości, że pełna przestrzeń nazw to 'Microsoft.Xna.Framework.Kolor "trzeba spojrzeć na kod, aby określić, co to jest. –