GON*_*ale 6 c# xna monogame windows-phone-8
MonoGame(一个基本上将XNA引入Windows Phone 8的框架)具有前缀的所有名称空间,Microsoft.Xna.Framework
我相信最小化将XNA应用程序移植到MonoGame时所需的代码更改量.
我的问题是,我希望访问Microphone
该类,因为尚未在MonoGame中创建,我必须在官方的Microsoft XNA类中从内部使用它,这需要取出明确的强制删除标准Microsoft.XNA.Framework.dll
引用. .csproj,我的MonoGame模板已设置为避免冲突,这很好用,现在Microphone
可以访问,但这样做我在Microsoft标准问题和MonoGame中存在的几个关键类之间产生了歧义.
我收到的错误是:
不明确的参考:
Microsoft.Xna.Framework.Color
Microsoft.Xna.Framework.Color
这显然是因为除了标准的Microsoft发布的XNA库之外,我还引用MonoGame.Framework.dll
了命名空间的命名空间,从而产生了这种模糊性.但是,在所有情况下,我都希望访问MonoGame版本.
任何想法如何我可以明确地告诉编译器使用Color
和Vector2
类的MonoGame版本而不是官方的微软版本?
任何using Color = Microsoft.Xna.Framework
明显的尝试都不会起作用,因为它们在编译的dll中都被标记为相同!
解决这个特定问题的方法是使用extern alias
(MSDN,教程).
这样,您可以为Microsoft XNA DLL添加别名,并using
为Microphone
该类指定适当的语句.继续正常使用MonoGame.
可能更好的解决方案可能是使用此技术Microphone
在命名空间中调用自己的包装器类Microsoft.Xna.Framework.Audio
.将它放在一个单独的程序集中,这样您就不必使用这些extern alias
东西来污染主要的源代码.
当然,理想的方法是实际Microphone
为MonoGame 实现并贡献它;)
(当然,这个答案没有提到你在以这种方式混合MonoGame和XNA方面取得多大成功,功能方面也是如此.希望它有效.)
归档时间: |
|
查看次数: |
2591 次 |
最近记录: |