MonoGame (un framework che porta in pratica XNA a Windows Phone 8) ha tutti i suoi namespace con prefisso Microsoft.Xna.Framework
Credo di ridurre al minimo la quantità di modifiche al codice richieste quando si porta l'app XNA a MonoGame.Riferimento ambiguo tra gli spazi dei nomi MonoGame e Microsoft.XNA.Framework
Il mio problema è che desidero accedere alla classe Microphone
, che, poiché non è stata ancora creata in MonoGame, devo utilizzarla dall'interno della classe Microsoft XNA ufficiale, ciò richiede la rimozione forzata esplicita di i riferimenti standard Microsoft.XNA.Framework.dll
all'interno di .csproj che il mio modello MonoGame ha impostato per evitare conflitti, che funziona benissimo e ora Microphone
è accessibile, ma così facendo ho creato ambiguità tra alcune classi chiave che esistono sia nel numero standard di Microsoft che in MonoGame.
Gli errori che mi giungono sono:
riferimento ambiguo:
Microsoft.Xna.Framework.Color
Microsoft.Xna.Framework.Color
Questo ha ovviamente verificato perché insieme la libreria XNA standard emessa da Microsoft, ho un riferimento a MonoGame.Framework.dll
che requisisce lo spazio dei nomi, creando questa ambiguità. Tuttavia, in tutti i casi, desidero accedere alla versione di MonoGame.
Qualche idea su come posso dire esplicitamente al compilatore di utilizzare la versione MonoGame della classe e Vector2
e non quella ufficiale di Microsoft?
Qualsiasi tentativo in un using Color = Microsoft.Xna.Framework
ovviamente non funzionerà perché entrambi sono etichettati lo stesso nelle dll compilate!
Se gli spazi dei nomi sono identici, sembra che dovrai ricompilare MonoGame per utilizzare un diverso spazio dei nomi. L'unica altra alternativa è creare un wrapper per i pochi metodi che si desidera utilizzare. Assicurati di essere esplicito in quale riferimento desideri effettivamente utilizzare in questa nuova classe. Ti avvertirò anche riguardo l'utilizzo di XNA poiché Microsoft ha sostanzialmente interrotto il suo sviluppo. –
Grazie, prenderò in considerazione un involucro .. sperando solo in qualcosa di più elegante. – GONeale
Si desidera utilizzare entrambi i riferimenti e entrambi condividono lo stesso spazio dei nomi il problema è con MonoGame non c'è una soluzione elegante. Ovviamente dubito seriamente che lo spazio dei nomi completo sia 'Microsoft.Xna.Framework.Colore 'dovresti guardare il codice per determinare cosa sia in realtà. –