在我的解决方案中,我有一个业务层项目和另一个处理集成的项目;在最后一个我有一个类来进行一些服务方法调用。
业务层引用集成项目。在那里,在业务层,我有followig方法,当我尝试创建Proxy类的实例时,intellisense向我展示了很多“global ::”。我认为这个全局::没有区别但是我想知道intellisense为什么会向我展示这一点。
public void ActualizarOrdenesDeCompraDesdeElWS()
{
Integracion.ProxyAudifarma proxy = new global::GOA.Integracion.ProxyAudifarma();
}
我想这是一个微不足道的C#基础,我很想念,谢谢你的答案。
- 解决方案后修改:
电话是:
namespace GOA.Negocio
{
public class GOA
{
public int ActualizarOrdenesDeCompraDesdeElWS()
{
Integracion.ProxyAudifarma proxy = new global::GOA.Integracion.ProxyAudifarma();
GOA类被命名为根名称空间引入了歧义风险。将类名更改为AplicacionGOA解决了我的问题,现在intellisense没有设置“global ::”空名称空间前缀。
答案 0 :(得分:6)
它只是解析为顶级全局命名空间,以避免与可能发生冲突的类名等产生歧义。
在MSDN上查看更多内容:http://msdn.microsoft.com/en-us/library/cc713620.aspx
例如,在上面的代码中,如果你有一个类或成员或名为GOA的东西,它将与该命名空间部分发生冲突,将global :: in front完全限定命名空间从其根目录在全局命名空间中。