Adding 1st Explictly Named Namespace To A Project Breaks The Use Of Implicit (i.e. Global) Namespaces?
Sep 27, 2010
I am working on a solution that does not name namespaces in code files. Instead it uses the root name space of the project (which is the same across all assemblies). Basically there is only one implicit namespace.
Well, I am trying to isolate some code so that I can run FxCop against it. I explicated named the code file with a namespace to do this. This works for FxCop, but it bricks the entire solution.Visual Studio is now asking me to prefix all uses of the implicit namespace with Global. So instead of:
I have a solution that contains many projects all using the same root namespace. No code files explicitly name a namespace. So lets say the root namespace is ExampleRootNamespace.Now a problem comes into play when I want to add an explicitly named namespace to one of the code files I am working on. I want to be able to isolate this code from the rest of the assembly to be able to run FxCop against it. So I add something like Namespace Interfaces.CSV to the code file.
This causes any code that references this assembly to need to say Imports ExampleRootNamespace.Interfaces.CSV. So far so good. I can even run FxCop against the assembly. The problem now is that in other assemblies I cannot say any longer things like:
Public class frmInputBoolean Inherits ExampleRootNameSpace.frmFormTemplate
Visual Studio is now asking me to rename the namespace to:
Public class frmInputBoolean Inherits Global.ExampleRootNameSpace.frmFormTemplate
There are hundreds of errors related to this. So my questions are:
1) Why would basically naming a namespace under the root for the first time cause issues with the program?
2) Are there any workarounds to this issue without renaming?
I also want to add that with regards to ExampleRootNamespace.Interfaces.CSV I am not referencing this anywhere in the codebase. I'm currently just referencing it from a unit test project. So I don't see why adding this namespace causes an issue.
Scenario:A widget developer codes using HTML and javascript.my vb.net application allows developers to create widgets for other users.in javascript you can call window.external to comunicate with the host windows scripting object and I would like to add a helper namespace with many functions to aid the development of widgets similar to windows sidebar's System namespace.
Problem:So I could allow developers to use Window.External.System but how can I just allow them to access System directly without using Window.External?Microsoft adds a System Namespace to windows sidebar gadgets host window which is just an internet explorer server window.
[URL] The jist of the problem is in fact that in the weka.classifiers.trees namespace you have the following members:
namespace weka.classifiers.trees.j48
and
public class J48 : weka.classifiers.Classifier (Member of weka.classifiers.trees)
Lamentably VB .NET in VS 2008 does not seem to be smart enough to distinguish betweem the two (which is odd, because there is no such problem in VS 2003, or in C# in VS 2008) because of it's lack of case sensitivity. Or possibly because of the fact that ikvmc emits an assembly compiled for the 1.1 run time... I'm not sure. I'm also not quite sure how you would resolve this particular issue and given the time sensitivity of this project I do not have the time to learn C# or Java to an extensive degree.
I need to read an xml document from a database record into an XDocument object in order for it to be deserialized. So that the deserialization will work, I need to apply a specific namespace to each of the level 1 elements. So XML looks a bit like this:
[Code]...
How do I prevent the blank/empty namespace being added to each child element of the element to which the required namespace has been applied?
Ive got a report which runs but I need to manually set the pg breaks. Its quite a big report and its not always the same length. I need to print columns A to Q. Rows 1 to 5 are headers then I need to count down 45 rows and set pg break and keep counting down 45 rows until the end of the report.
I am looping through all folders on the computer in a background worker. Starting with just the C: drive, the function works perfectly I've been tasked with adding recursiveness to this function to loop through all subfolders within each and every folder.
This is the working code without recursive. Startpath is set = "c:".
Private Sub BackgroundWorker1_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork Dim fs As New FileSystemObject Dim fsfolder As Folder Dim subfolder As Folder
[Code]...
EDIT: I was doing some testing and threw in an if check to skip the C:$ folders. Working ok so far and noticed something really strange. It doesn't loop through all the folders in the C: drive. I think it will loop through only the first 2 folders. One is C:Boot so I skip that and the other is C:Dev-cpp. It won't loop through the Program Files, Program Files (x86), or Users.
Which is the best way to store global variables, in My.Settings or My.Namespace. The reason I ask is because I need to know certain boolean values if certain forms are open from other forms. At present I am defining Global Boolean variables in My.Application, which give the result I require.
I cannot find a way to get LINQ to spit out xml the way they want. Question is, can LINQ do it or do I need to resort to hardcoding the xml the old way before LINQ to XML?
If I create a new class library project in VB.NET, I can create subfolders (a la C#), add WinForm objects to these subfolders, and then specify a namespace:
Namespace Sub1.Sub2 Public Class SomeForm Public Sub New() InitializeComponent()
[code]...
This resolves as ProjectRootNamespace.Sub1.Sub2.SomeForm, which is good.However, if I create a new WinForms project in VB.NET, and attempt the same thing, I get this error in the designer:The class SomeForm can be designed, but is not the first class in the file. Visual Studio requires that designers use the first class in the file. Move the class code so that it is the first class in the file and try loading the designer again.Is there a way to have forms in sub-namespaces of a VB.NET WinForms app instead of in the root namespace?
i hav a problem in building a solution in vs 2008.I'm opening vb.net project in VSS repository.When i tried to build the application its giving lot of compile error.After examining the code i've found that the namespaces are not imported in *.vb file , hence the types used in the file are not accessible .I know that we can import namespaces at application level
Years back I inherited a project that is written in VB.net - the problem with this site (it's a website in Visual Studio, not a web application) is that if you change any code you have to compile and upload the entire site each time.
Why? Because it seems to generate a bunch (maybe 10-15) of randomly named DLLs in the BIN directory on every compilation. Each page in the site then references these randomly named DLLs so I have to upload them all and the new DLLs if the site is to continue working.
What 'setting' is this site built using, or more importantly how can I change it to a more convenient system of generating one or two consistently named DLLs?
I'm trying to add the Compatibility.VB6 namespace in some of my VB.NET Programs (using 1.1 framework, 2003). It was added in one of my programs because of a migration wizard but i can only use these commands in that particular program. How would I add that to the others?
I have 2 projects, one built in VB.NET and another in C#.NET. I want to use certain functionality of VB.NET into C#.NET and hence I have added the dll file of VB.NET solution into C#.NET as a reference by browsing the dll from my system. Say dll name for VB.NET is myData.dll. In my C#.NET project I am trying to declare it as a namespace i.e. "using myData;" and its giving me an error of "Type or namespace name could not be found"
I am just testing how to use dll and after googling a lot, I made it work partially...Created new project Class Library, named it myFirstDll and made a Public Shared Sub helloDll to do something. Now since this is my first time, the dll is simply showing the input in a msgbox:
Public Shared Sub helloDll(ByVal msg As String)
If msg <> "" Then MsgBox(msg, MsgBoxStyle.OkOnly, "WE HAVE SOME MSG") Else MsgBox(msg, MsgBoxStyle.OkOnly, "NO MSG") End If
End Sub
After building the dll-file, I started a new project using normal windows forms, named it "useMyDll", I clicked Project -> Add Reference, and added my dll. The program file that I made needed a textbox and a button for using the dll:
Private Sub useDllButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles useDllButton1.Click Dim msg As String = Nothing msg = TextBox1.Text myFirstDll.myFirstDLL.helloDll(msg) 'this will be in msgbox in dll-file End Sub
And when running this I could write something in the textbox and a msgbox with that input would pop up. Really happy with that. My first attempt to make a dll and use it was very successful. Then I thought, what about running the dll from rundll32.exe? It would be handy to make a dll that could be run without my exe. After googling a long time, I tried to add a new button:
Private Sub useDllButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles useDllButton2.Click 'Now let us see if we can open it using rundll32.exe ? Dim msg As String = Nothing msg = TextBox1.Text
[CODE]...
Now the first button still works just fine, but the second button gives some error (translated to english would be) like "missing entry: helloDll" I also tried to open with command prompt, same result.
After googling again I read one place that you can't run a visual basic dll with rundll32.exe, so is this true? Or is there some way of doing it? I read one place that it works if you make the dll be "COM-Visible", but I don't really understand how to or what it means. I tried to open properties, clicked Assembly Information, and "Make assembly COM-Visible", but this doesn't change anything. Then I read somewhere that it has to be in a module to work. Could it be that I need to rewrite some codes and it would work, or would I have to start learning c++ in order to accomplish this?
I'm writing a piece of software that accepts XML from our clients. The xml has2 parts, a standard part that contains set fields, and a freeform part that allows our clients to add own their own xml
I can add dll file in global assembly through making a complete setup but know i want to add dll in to global assembly through code dose any one knows how it can be done.
I use Excel PIA thru "Imports Excel = Microsoft.Office.Interop.Excel". IDE allows to set "global" reference for any namespace (in Project -> 'Project name' Properties -> References). But it doesn't allow to set alias for this namespace, so I have to write "Imports Excel = ..." thru all files where I need it. This would be great to have such thing in IDE!
The XML would look like this <soap:Header> <aaa:TocHeader aaa:role="ADMIN" aaa:locale="en-US" aaa:softwareName="TOC" aaa:softwareId="aaaaaaaaaaa" xsdVersion="1.0" xmlns:aaa="http://toc.schemas.testing.com/headers/2006-02-01"> <aaa:Message>
I've been having fun with the xmldocument class recently but am struggling with namespaces. I've been trying (with some success) to merge parts of one XML file into another. The problem has been that one of them utilises a namespace on one of the interior nodes and therefore my xpath queries where failing when I tried to create a nodelist. This I fixed (after reading some great examples here) by adding a namespace manager and changing my query accordingly.
Everything looked fine initially and I appeared to end up with the desired effect, but the XML file that was created was failing in the target application. What I didn't realise at first (due to the length of the xml node values being wider than my screen!!) was that when I imported the nodes from one file to another, a blank names space was being added to the end of each node (xmlns="")
' load the xml template from the project resources Dim fdf As New XmlDocument fdf.LoadXml(My.Resources.fdf_template)
I have a vb.net 3.5 class library project that needs to reference two assemblies that have the same namespace. We have two third party dll's in which one is version 5.1 and the other is version 6.1. They have the same dll filename and they utilize the same namespace and functions/class names. The project needs to use one or the other depending on a specific situation. I've investigated up on a c# process that uses the "extern alias" feature to pull in the different assemblies.
[URL]
What use is the Aliases property of assembly references in Visual Studio 8.It seems that this feature isn't fully available for vb.net. Things I've Tried I've renamed the 2nd dll and added both references to my project. At this point I get tons of: 'blah' is ambiguous in the namespace. So I need to alias the different versions. In vb.net you can do aliases on an imports statement like:
Imports version5 = Somedll.Something
The problem is I can't setup an assembly reference alias for the different versions of the dll. Apparently in vb.net you can't set these up in the reference properties window. So I tried setting them in in my project file like this:
I'm trying to make more use of namespaces and giving my project a more rigorous design, as it has been getting pretty messy.I was wondering,before I get started, is there a standard convention for the names and organization of namespaces?For instance,for a 3-tier program, should there always be a "UI", "Business",and "DataAccess" namespace (and is this what they're typically called)?Or should I just organize the project as I see fit?
I want to use project B property in project A. Hence, I added project B to my solution. How can i use the property of B? Can someone guide me? i'm new to vb.net..To my knowledge, we need to use namespace and create a new instance. Could someone guide me on how to use namespace for this purpose?
I try to create a sub main in a project but i can not.I have create a module called Module 1 and inside i have created a Main Sub which is intended to creta a thesaurus_form class instance , like this Code: Module module 1Public Sub Main()Dim thesaurus_form2= New Thesaurus_formEnd SubEnd module.Instead of this, once it has cretaed a first instance of the thesaurus_form class, it creates another one what i dont want at all..How can i do do make it execute the code which is inside the thesaurus_form_load sub..I also can not create a global variable or a staitc variable, because i receive this message.static is not valid in a member variable declaration.
I'm developing an web application using VB.Net, and I would like to know, if is there any way to make a namespace to be viewed by all project without necessary Imports?
I have an VS2008 solution with 2 projects, WebUI and Domain; WebUI references domain. The Root Namespace in the WebUI project is:MyCompany. MyProjectName.WebUI. The Root Namespace in the Domain project is blank. (Namespaces are manually declared for all classes). So everything has been working fine, until I tried to reference a class in Domain via a fully qualified path: [Code]
Does this make any sense? So, then I cleared my WebUI Root Namespace, and voila, the fully qualified declaration then does work. However, doing this then seemed to invalidate the registration of all my user controls on my pages. The only thing that seemed to solve this was in the codebehind of each user control, manually add a namespace of MyCompany.MyProjectName.WebUI. which might make sense as perhaps the namespaces of the pages somehow had still retained the root namespace value. But, if I was to create a brand new aspx page and drop a user control on (this is before manually adding the namespace), even that page couldn't properly register it. Yet, the user control properly rendered in design view. so the VS UI seemed to be able to properly resolve it, but the compiler seemingly can't.
So from what I can tell, I can at least get things to work by manually wrapping user controls in the proper namespace. Why this is necessary for aspx pages, that have no namespace specified, to see the user controls, seems to make no sense. Is there some fundamental principle I am misunderstanding??