这意味着intellisense给我看的前缀"global ::"是什么意思

dan*_*uio 2 c#

在我的解决方案中,我有一个业务层项目和另一个处理集成的项目; 在最后一个我有一个类来进行一些服务方法调用.

业务层引用集成项目.在那里,在业务层,我有followig方法,当我尝试创建Proxy类的实例时,intellisense向我展示了很多"global ::".我认为这个全局::没有区别,但我想知道为什么intellisense会告诉我这一点.

public void ActualizarOrdenesDeCompraDesdeElWS()
{
    Integracion.ProxyAudifarma proxy = new global::GOA.Integracion.ProxyAudifarma();
}
Run Code Online (Sandbox Code Playgroud)

我想这是一个微不足道的C#基础,我很想念,谢谢你的回答.

- 邮政编辑解决方案:

电话是:

namespace GOA.Negocio
{
    public class GOA
    {        
        public int ActualizarOrdenesDeCompraDesdeElWS()
        {                       
            Integracion.ProxyAudifarma proxy = new global::GOA.Integracion.ProxyAudifarma();
Run Code Online (Sandbox Code Playgroud)

GOA类被命名为根命名空间引入了歧义风险.将类名更改为AplicacionGOA解决了我的问题,现在intellisense不设置"global ::"空名称空间前缀.

Jam*_*are 6

它只是解析为顶级全局命名空间,以避免与可能发生冲突的类名等产生歧义.

从MSDN查看更多信息:http://msdn.microsoft.com/en-us/library/cc713620.aspx

例如,在上面的代码中,如果您有一个类或成员或名为GOA的东西,它将与该命名空间部分冲突,将global :: in front完全限定命名空间从其根目录在全局命名空间中.