Xamarin.Auth项目打破了,即源代码编译正常,之后又一次Xamarin.Android更新它突然中断。Visual Studio 2015 intellisense和模棱两可的命名空间
事实证明,在Mono.Android.dll
(Xamarin.Android)扩展了几个命名空间定义之后,问题就出现了。
我找遍问题降低到以下内容:
有一个DLL#1(Mono.Android.dll):
namespace Xamarin.Android
{
public class Class1
{
}
}
namespace Android.OS
{
public class Class2
{
}
}
有一个DLL#2(Xamarin.Auth.Android .DLL):
namespace Xamarin.Auth
{
//This does not compile. See the problem description below.
public class User1 : Android.OS.Class2
{
}
}
智能感知显示了以下的问题:
错误CS0234类型或命名空间名称“OS”中不存在的命名空间“Xamarin.Android”(是否缺少程序集引用?)
这可以是固定的,通过改变后者命名空间别的东西,或使用global::
标识符:
namespace SomeOtherNamespace
{
//This compiles ok.
public class User1 : Android.OS.Class2
{
}
}
namespace Xamarin.Auth
{
//This compiles ok.
public class User1 : global::Android.OS.Class2
{
}
}
的问题是:为什么不给智能感知一个警告,Android
命名空间分支global::Xamarin.Android
和之间的暧昧0?有什么好办法呢?总是使用global::
命名空间标识符?
我不是清楚地表明此变通办法自己的问题吗? –
对不起。我错过了。更新。 –
感谢别名的想法,我会考虑这一点。有没有办法让Visual Studio在内联自动化命名空间时始终插入'global ::'? –