I am trying to get all assemblies in CurrentDomain using AppDomain.CurrentDomain.GetAssemblies() to write their FullName into a DropDownList, however if I don't instantiate them, they are not seen in returned array from GetAssemblies() in CurrentDomain.They are all added as Reference and in Reference folder of the solution. Only time I can get them from the GetAssemblies() is when I first instantiate them.How to overcome this problem with an easy and more generic way instead of instantiate them everytime when I add new Assembly, etc.Due to company policy, I have to obfuscate some parts of the images: All the assembilies are referenced in Reference folder:
This question is about a different instance that im trying to instantiate...I have to get the "Read" function from my Cardreader class and return a string to it on the form1.vb .... Now i did what i can remeber but for some reason i'm having a problem with the brackets.... What can i do to fix this?Form1.vbThisATM.getCardReader.Readr("TEST TEXT IS FUN")
CardReader.vb Public Function Readr(ByVal card As KeyCard) As String Return Read
I am in the middle of (trying) to create a Class Library available for use in VB6/VBA. With some assistance received here I have now done the following:Created a Class Library Project in Visual Studio 2010 Express and put the code in a Class Module.Learned I needed this wonderful thing called an "Interface"... Made one of those:)I opened the project properties and went to "Assembly Information" and checked "Make COM Visible".I went to "Advanced Compile" options and targeted .Net 2.0 (it's very simple code).Removed all references expect for "System".Built the project (no warnings or errors) and copied the DLL out of the Bin folder into C:WindowsSystem32 Ran RegAsm /tlb. Everything seemes just fine.I popped open excel to run a quickie test and the TLB is available but I have two problems:
I can see both the class and the interface in the Object Browser/Intellisense.When I try to create an instance of either object (Set obj = New MyObj)I get the error:I can set a reference to the Object and the Intellisense can see it, I just get that error when I actually try to create the Object. Did I miss a step?
Is it possible to instantiate a new class object within a Form Procedure where it is accessible to all other Procedures/Functions within the Form Module? For example, I have a Client Class Module that contains properties and Methods that reflect a Client DB Table. All the properties and Methods within this class are Public. So, when I instantiate a new instance within a Procedure, I declare it as such:
Private Sub cmdNewClient_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdNewClient.Click Try Dim client as New clsClient
[code]....
Normally, I would declare a new instance of this Class Object at the beginning of a Form Module. I'm trying to do this in order to have more control.
I have some VB.NET code that creates a TransactionScope instance:
LoggingUtility.LogDebug("UpdateCallTable", "SatComCallDataImporter", "About to associate call data with contracts") Using ts = New TransactionScope() LoggingUtility.LogDebug("UpdateCallTable", "SatComCallDataImporter", "Getting all unimported SatCom calls")
My application is throwing an exception on the call to the creation of a new TransactionScope, with "Object reference not set to an instance of an object.". The exception isn't thrown on my development machine or my test machine; only on the customers production machine, and I have no idea why. I've placed debug lines immediately before and after this line so I'm positive it is this line causing the problem.
A have used TransactionScopes throughout the application and this is the only place throwing the exception on the client machine."About to associate call data with contracts" gets written to the log and the next log entry is the "Object reference not set to an instance of an object".
Code works fine if I move it out of a transaction.I've been struggling with this for 4 days now and have got no closer.
I am having some real issues with this one. I have a class which contains two other objects...but I cannot seem to instantiate those sub objects. Here is the code for my class:
In my front end project i have a string list of all the control classes. I need to instantiate the class into an object using the string name. How can I do this? The class must be of the right type and not just object?
I hate to see the name of the class used as a string parameter like "FileDownloader" in the code, and I would like to use something like this FileDownloader.Name(), where FileDownloader is name of the class.Only problem is that I can't find out how to do that without instantiating object or creating a static method..Is there a way to get a class name in .net without having the object instance and without creating a static method that returns the name of the class?
#1 is C# Class Library, where I have my EF model defined (3.5 sp1) and some public methods.#2 is a VB winforms app.In the winforms app, I have referenced the C# library and added the connection string for the EF model. The problem I am having is that I have a form where the user selected a .txt file to import. On the VB side, I create a byte() from the file, then pass it to a public method cleverly called Process. In Process(), everything runs smoothly until I instantiate the EF model.
using (WorkersCompImportEntities context = new WorkersCompImportEntities()) { .... Where I receive this error: Could not load file or assembly 'System.Drawing, Version=1.0.3300.0,
When an instantiated class calls a method in the parent form class, VB.NET starts a new instance of the form class instead of calling the method on to the active one.How do I tell it that I have just one instance of my form class, or that I don't want to create a new instance of the form and just call the method on the already active form?
I have started working on a legacy project (ASP.NET 1.1) which was done in an old machine (which I dont have access to). And I am unaware of the development environment settings used for building this project.
Nonetheless, I am able to build the project and deploy it all well from my machine (I created the full development enviroment locally). In my machine everything works great.But some screens where one of the assembly dlls (third party dlls) are used do crash on any machine other than mine! They probably do net get the proper assembly (with matching version or something), even though when I have put all the assemblies in bin (and used the same files while adding references to the project). .NET runtime probably tries to find them in the GAC of the other computers? Or probably in my system itself it loads from GAC and not from the bin? How could I know all this? The question is it runs perfectly fine on my machine, where the assemblies are at both places - in bin and in GAC.
I am lost what I should do to so that no matter which machine I deploy the project, it should always look in bin only! Also, I dont want to change the code in any way because its a legacy code and has been working all right since ages! Just some settings e.g. maching.config or soemthing?
I have a windows forms Application using DCOM to connect to another server in order to retrieve data from a database. The program works perfectly fine on my develeopment box both inside of and outside of the idea.However it throws an exception on my test box: System.Exception.... TYPE_E_CANTLOADLIBRARY. The error happens when accessing a property of on the the public DCOM classes. The property holds an instance of one of the private classes for the DCOM. I've compared the registries and all the relevant entries seem to be the same. When I compared the dumps I noticed that System.Config and System.XML werent loaded on the test machine, even though they are installed and appear to be in the GAC.
I am writing a program and I want the program to support plugins. I created an interface that the program must implement. I am using the following code from my main program to call the plugin:
Dim asm As Assembly = Assembly.LoadFrom(ff.FullName) ' Get the type Dim myType As System.Type = asm.GetType(asm.GetName.Name + "." + asm.GetName.Name) ' If the type is null then we try again without the root namespace name
[code]....
I set this property from my main program and everything works. Except, after a while, m_PanelObject gets set to Nothing for some odd reason. I'm not setting it to Nothing anywhere in my program and there is no place in the plugin code that sets it to Nothing.
We've built a small component which takes an Id, looks up an entry in the database for an assembly/namespace/class, and dynamically loads an instance of the class that we're after. It has been working fine up until now, but when running this code in VS 2010, it's failing.
Private Function AssemblyLoaded(ByVal assemblyFile As String) As Assembly Dim assemblies() As Assembly = AppDomain.CurrentDomain.GetAssemblies For Each asmb As Assembly In assemblies
[Code]....
But it feels dirty. Is there a better way of checking if an assembly is already loaded, and handing that back to the caller? Are the issues above specific to .NET 4.0 or Visual Studio 2010? I haven't tried this outside the IDE as it requires fairly significant configuration.
I'm deploying a vb 2005 application that references crystal report XI release 2 components. How do i install these components to the gac? The client machine does not have gacutil and i don't know how to use msi to do the job. I have researched the web for answers without success.
If I try to call my extension method which is defined like this:
Module LinqExtensions <System.Runtime.CompilerServices.Extension()> _ Public Function ToSortableBindingList(Of TSource)(ByVal source As IEnumerable(Of TSource))
I thought I would practice using reflection by building an Object Browser similar to what's in VS2010.
The reflection part is easy enough, but I'm can't find any means of determining where all of the assemblies are installed. On my machine (Win 7) the GAC would seem to be located at C:Windowsassembly.
However, 4.0 assemblies look to be located at C:WindowsMicrosoft.NETassembly in either GAC_32 or GAC_MSIL.
VS Object Browser obviously knows where to look, you can even filter on "All Components" or select a framework version.
But when I look at the Object Browser in VS, I find that it lists assemblies from several different locations: For example...
CODE:
How does VS know to list these assemblies? Is there some registry key I'm missing that defines all of these locations?
Ok, I've read every question on here about strong named assemblies and just want to clarify something. First though, from what I've read, GAC aside, strong named assemblies prevent a malicious 3rd party changing and impersonating your code. It'd be great to have some links to some real world examples of this kind of spoofing that happened pre strong named assemblies. If security or the GAC are not a concern, It seems that it's still advisable to strong name assemblies because:
(A) Clients who have strong named assemblies can only reference your assemblies if they are signed.
(B) Clients who do not have strong named assemblies can reference your assembly whether it's signed or not.
I have two executables that access a DLL containing Data Access Layer objects Each exe can have a different config containing info on server and database name, connection string etc.How do I pass the config info to the DAL objects?
Obviously I can pass the config strings to the DAL objects every time I instanciate one, but that seems messy and repetitive as every class in the DAL will require Properties for the Config strings..if there is a way for the instanciated DAL objects to read some properties from the calling object without me having to pass them explicitly?
I've recently reorganized some files on my current project and renamed the namespaces. Now whenever I try to reference a method from an object that I've instantiated I get told by the debugger that I need to recompile any assemblies that reference that method.
I have developed an application that creates Excel and Word documents, hence, Interop.Word.dll and Interop.Excell.dl asre being included into the installation package.May I redistribute these dll's with my application package? And how does the Developers Licenses work?I live in SA and have heard that the redistribution rights may be different.
I created a .net assembly, which works perfectly if I create before runtime. But i'd like to know if it's possible to reference at runtime. The reason is because i'm creating an application which will be used in several servers, and it will be reference that same .net assembly, but the .dll file will be in different location per server. I know that when I reference before runtime, the .net assembly it will be pointing to is from the original (or at least that's what I think).
I'm trying to reduce as much as I can my VB.Net assembly side, and I just figured out that all variable names were kept unchanged in the actual assembly. Since I tend to use pretty long var names, it adds up and, by running dotfuscator on my assembly, I could shrink it by as much as 10%.