xsltcontext without obtener nombres nombre necesario filename extension espacios archivo administrador c# vb.net language-features namespaces

c# - without - ¿Hay alguna forma de escapar del espacio de nombres raíz en VB?



es necesario el administrador de espacios de nombres o xsltcontext c# (5)

Creo que la triste realidad es que no puedes. Los espacios de nombres se anexan al espacio de nombres raíz. La documentación no da ninguna pista de ningún mecanismo de escape. Hay una nota sobre el uso de la palabra clave Global en relación con los espacios de nombres, pero interpreto esa parte del texto como dicusing sobre cómo referirme a los espacios de nombres en lugar de cómo declararlos.

namespace ConsoleApplication1 { class Program { static void Main(string[] args) { System.Text.MyCustom mc = new System.Text.MyCustom(); } } } namespace System.Text { public class MyCustom { } }

¿Cómo puedo hacer esto en VB, teniendo un espacio de nombres raíz en la aplicación, esto es posible?

Actualización : de acuerdo con las respuestas, supongo que no hay forma de hacerlo. Publiqué una sugerencia de función para Microsoft Connect: vote .


En las propiedades del proyecto de un proyecto VB puede cambiar el espacio de nombres raíz. Esto es por defecto igual que el nombre del proyecto, pero puede eliminarlo, y luego tiene el poder completo de la estructura del espacio de nombres en el código. El inconveniente es que debe especificar el nombre del proyecto como espacio de nombre en todas partes en el código donde lo necesite ...

Para los proyectos de C #, la configuración similar en las propiedades del proyecto, es solo el espacio de nombres predeterminado, que se reemplaza si se especifica el espacio de nombres en el código. Para proyectos de VB, especifica el espacio de nombre de nivel superior, no el predeterminado ...


En VB.NET de VS 2012 este viejo problema está solucionado. A partir de esta versión, puede escapar del espacio de nombres raíz con un líder global . El siguiente código es defectuoso en VS 2010 y correcto en VS 2012:

Imports Tools Module Module1 Sub Main() SayHello() End Sub End Module Namespace Global.Tools Module TestModule Sub SayHello() Console.Out.WriteLine("Hello") End Sub End Module End Namespace


Establecer un espacio de nombres en VB.NET es más o menos lo mismo que declarar un espacio de nombres en C #, ¡solo con la sintaxis de VB.NET! Desafortunadamente, el espacio de nombres raíz siempre está presente, por lo que cualquier espacio de nombres nuevo declarado estará dentro del espacio de nombres raíz.

Namespace ConsoleApplication1 Class Program Private Shared Sub Main(ByVal args As String()) Dim mc As New System.Text.MyCustom() End Sub End Class End Namespace Namespace System.Text Public Class MyCustom End Class End Namespace

El código anterior le proporcionará lo siguiente si el espacio de nombres raíz es Test .

Test.ConsoleApplication1
Test.System.Text

Saludos por los comentarios chicos, estaba publicando en la memoria!


Eche un vistazo a esta pregunta: ¿es posible anular el espacio de nombres raíz de VB.NET? .

La conclusión es que su única opción es dejar el espacio de nombres predeterminado vacío en las propiedades del proyecto y luego ajustar todas las definiciones de clase / módulo en las declaraciones de Namespace.