472,344 Members | 2,394 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,344 software developers and data experts.

how do you find the root namespace at runtime?

Bob


Nov 21 '05 #1
5 12214
Bob,
how do you find the root namespace at runtime? Root namespace of what?

You can get the namespace of a type, by looking at the methods & properties
of System.Type, specifically the Namespace property.

You can use Object.GetType to get the type of any object.

For example to get the namespace of a String variable, you can use:

Dim s As String = "Hello World"
Dim [namespace] As String = s.GetType().Namespace

Or the GetType keyword to get a System.Type from a type identifier.

For example to get the namespace of the main form class, you can use:

Dim [namespace] As String = GetType(MainForm).Namespace

Hope this helps
Jay

"Bob" <no***@nowhere.com> wrote in message
news:ea**************@TK2MSFTNGP10.phx.gbl... how do you find the root namespace at runtime?

Nov 21 '05 #2
Bob
"Jay B. Harlow [MVP - Outlook]" <Ja************@msn.com> wrote in message
news:%2****************@TK2MSFTNGP11.phx.gbl...
Bob,
how do you find the root namespace at runtime?

Root namespace of what?


The project that created the currently executing assembly.

In the property pages of a project, available by right-clicking one one and
selecting 'properties', under 'common properties'/'general' there is a place
you can enter a 'Root Namespace'. I would like access to this at runtime.

Bob
Nov 21 '05 #3
Bob,
Have you tried using my second example?

For example to get the namespace of the main form class, you can use:

Dim [namespace] As String = GetType(MainForm).Namespace

MainForm is the name of your startup object (as set in Project Properties).

Hope this helps
Jay

"Bob" <no***@nowhere.com> wrote in message
news:uy**************@TK2MSFTNGP12.phx.gbl...
"Jay B. Harlow [MVP - Outlook]" <Ja************@msn.com> wrote in message
news:%2****************@TK2MSFTNGP11.phx.gbl...
Bob,
> how do you find the root namespace at runtime?

Root namespace of what?


The project that created the currently executing assembly.

In the property pages of a project, available by right-clicking one one
and
selecting 'properties', under 'common properties'/'general' there is a
place
you can enter a 'Root Namespace'. I would like access to this at runtime.

Bob

Nov 21 '05 #4
Bob
You mean something like this -

Dim asm As [Assembly] = System.Reflection.Assembly.GetEntryAssembly
MsgBox(asm.EntryPoint.DeclaringType.Namespace)

But there is no guarantee that the assembly's startup object is not
contained within a deeper namespace than the root.

Um... hmmm. I guess this will work if I make sure to exclude any types from
referenced assemblies (not shown). The shortest Namespace will probably be
the root. Ugh, but again no guarantee...

Dim asm As [Assembly] = '<some assembly>
Dim Root As String
For Each t As Type In asm.GetTypes
If Root Is Nothing Then
Root = t.GetType.Namespace
Else
If Root.Length > t.FullName.Length Then
Root = t.FullName
End If
End If
Next
MsgBox(Root)

I guess I'll have to call this good enough.

Thanks,
Bob

"Jay B. Harlow [MVP - Outlook]" <Ja************@msn.com> wrote in message
news:u9**************@TK2MSFTNGP15.phx.gbl...
Bob,
Have you tried using my second example?

For example to get the namespace of the main form class, you can use:

Dim [namespace] As String = GetType(MainForm).Namespace

MainForm is the name of your startup object (as set in Project Properties).
Hope this helps
Jay

"Bob" <no***@nowhere.com> wrote in message
news:uy**************@TK2MSFTNGP12.phx.gbl...
"Jay B. Harlow [MVP - Outlook]" <Ja************@msn.com> wrote in message news:%2****************@TK2MSFTNGP11.phx.gbl...
Bob,
> how do you find the root namespace at runtime?
Root namespace of what?


The project that created the currently executing assembly.

In the property pages of a project, available by right-clicking one one
and
selecting 'properties', under 'common properties'/'general' there is a
place
you can enter a 'Root Namespace'. I would like access to this at runtime.
Bob


Nov 21 '05 #5
Bob,
You mean something like this -

Dim asm As [Assembly] = System.Reflection.Assembly.GetEntryAssembly
MsgBox(asm.EntryPoint.DeclaringType.Namespace) No I meant exactly what I showed! Of course the above doesn't require you to
know the startup class.
But there is no guarantee that the assembly's startup object is not
contained within a deeper namespace than the root. Then don't use the startup object, use a different class that is not
qualified with a namespace. I offered the startup object as its one known
object to exist in your project.
The shortest Namespace will probably be
the root. Ugh, but again no guarantee... Most of my projects have 2 or more namespaces for the root namespace, as the
root namespace tends to be: company.solution.project.
I guess I'll have to call this good enough. Bingo!

I have to ask: Does it really matter what the root namespace is? What do you
really need or want it for? (Do you really need it?)

As you found, there is no real guaranteed way of finding it. I offered the
GetType(SomeType).Namespace as it is "close enough" for most VB.NET
developers, of course it will fail in source files that include a Namespace
statement, the workaround of course is to put GetType(SomeType).Namespace in
SomeType, and do not explicitly put SomeType in a namespace.

Hope this helps
Jay

"Bob" <no***@nowhere.com> wrote in message
news:eT**************@TK2MSFTNGP11.phx.gbl... You mean something like this -

Dim asm As [Assembly] = System.Reflection.Assembly.GetEntryAssembly
MsgBox(asm.EntryPoint.DeclaringType.Namespace)

But there is no guarantee that the assembly's startup object is not
contained within a deeper namespace than the root.

Um... hmmm. I guess this will work if I make sure to exclude any types
from
referenced assemblies (not shown). The shortest Namespace will probably be
the root. Ugh, but again no guarantee...

Dim asm As [Assembly] = '<some assembly>
Dim Root As String
For Each t As Type In asm.GetTypes
If Root Is Nothing Then
Root = t.GetType.Namespace
Else
If Root.Length > t.FullName.Length Then
Root = t.FullName
End If
End If
Next
MsgBox(Root)

I guess I'll have to call this good enough.

Thanks,
Bob

"Jay B. Harlow [MVP - Outlook]" <Ja************@msn.com> wrote in message
news:u9**************@TK2MSFTNGP15.phx.gbl...
Bob,
Have you tried using my second example?

For example to get the namespace of the main form class, you can use:

Dim [namespace] As String = GetType(MainForm).Namespace

MainForm is the name of your startup object (as set in Project

Properties).

Hope this helps
Jay

"Bob" <no***@nowhere.com> wrote in message
news:uy**************@TK2MSFTNGP12.phx.gbl...
> "Jay B. Harlow [MVP - Outlook]" <Ja************@msn.com> wrote in message > news:%2****************@TK2MSFTNGP11.phx.gbl...
>> Bob,
>> > how do you find the root namespace at runtime?
>> Root namespace of what?
>
> The project that created the currently executing assembly.
>
> In the property pages of a project, available by right-clicking one one
> and
> selecting 'properties', under 'common properties'/'general' there is a
> place
> you can enter a 'Root Namespace'. I would like access to this at runtime. >
> Bob
>
>



Nov 21 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Randy | last post by:
Is there a way to retrieve the root namespace during runtime? I'm trying to generalize a function and...
4
by: Matty | last post by:
I have successfully written a couple of Web services that work fine on my localhost so this is not a security issue. My problem only arises when...
3
by: Lee Moody | last post by:
Does anyone know where I can access programmically the value stored in the "Root Namespace" parameter of the project's common properties? To find...
2
by: Rafael Pivato | last post by:
Can I have two Class Libraries to share the same root namespace ? I want something like this: MySystem (root namespace) MyBO (class library...
3
by: CCJohn | last post by:
Hi, I find that while I can use the "Namespace...End Namespace" inside my code, there is also a "Root namespace" field in the project properties...
2
by: Jeff Brown | last post by:
Hi, I suspect that this isn't possible, but I figured I'd ask. My project has a root namespace, let's say it's "Root", that applies to almost...
6
by: Viet | last post by:
Is it possible to instantiate an object from the Root namespace? I have a MS Visual Studio 2002 vb.net project consisting of a dozen individual...
4
by: Brian Henry | last post by:
Is there anyway to get the name of the rootname space of a loaded assembly back as a string? thanks
2
by: gabe | last post by:
Hi, We have a number of projects that will use the default 'Root Namespace' option in the project properties box. There will be a common Master...
0
by: concettolabs | last post by:
In today's business world, businesses are increasingly turning to PowerApps to develop custom business applications. PowerApps is a powerful tool...
0
by: teenabhardwaj | last post by:
How would one discover a valid source for learning news, comfort, and help for engineering designs? Covering through piles of books takes a lot of...
0
by: Naresh1 | last post by:
What is WebLogic Admin Training? WebLogic Admin Training is a specialized program designed to equip individuals with the skills and knowledge...
0
by: antdb | last post by:
Ⅰ. Advantage of AntDB: hyper-convergence + streaming processing engine In the overall architecture, a new "hyper-convergence" concept was...
0
by: Matthew3360 | last post by:
Hi there. I have been struggling to find out how to use a variable as my location in my header redirect function. Here is my code. ...
2
by: Matthew3360 | last post by:
Hi, I have a python app that i want to be able to get variables from a php page on my webserver. My python app is on my computer. How would I make it...
0
by: AndyPSV | last post by:
HOW CAN I CREATE AN AI with an .executable file that would suck all files in the folder and on my computerHOW CAN I CREATE AN AI with an .executable...
0
hi
by: WisdomUfot | last post by:
It's an interesting question you've got about how Gmail hides the HTTP referrer when a link in an email is clicked. While I don't have the specific...
0
by: Matthew3360 | last post by:
Hi, I have been trying to connect to a local host using php curl. But I am finding it hard to do this. I am doing the curl get request from my web...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.