在我的解决方案中,我有一个业务层项目和另一个处理集成的项目; 在最后一个我有一个类来进行一些服务方法调用.
业务层引用集成项目.在那里,在业务层,我有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 ::"空名称空间前缀.
它只是解析为顶级全局命名空间,以避免与可能发生冲突的类名等产生歧义.
从MSDN查看更多信息:http://msdn.microsoft.com/en-us/library/cc713620.aspx
例如,在上面的代码中,如果您有一个类或成员或名为GOA的东西,它将与该命名空间部分冲突,将global :: in front完全限定命名空间从其根目录在全局命名空间中.