C# - Why Do We So Many Kinds Of Assembly Loading Methods - Only LoadFrom() Is Applicable?
Sep 25, 2010
AFAIK, there're 3 methods to load an assembly into a AppDomain:
Assembly.Load()
Assembly.LoadFrom()
Assembly.LoadFile()
The LoadFrom() method takes the assembly filepath as its argument, but the filepath is merely providing the assembly identity information as a clue to the CLR. The LoadFrom() method still internally calls Load() with that identity information. So it is quite possible that LoadFrom(filepath) will load a totally different assembly from the one specified by the filepath. But the tame LoadFile() method will just load the assembly we specified.
I am wondering why do we need the LoadFrom() method? It adds nothing but confusion and pitfall. Is there any scenario that only LoadFrom() is applicable?
View 3 Replies
ADVERTISEMENT
Apr 2, 2012
I am loading an Assembly using Assembly.LoadFrom() as the assemblies are located in a different path from Application Base directory.
Dim oAssembly As Assembly = _
Assembly.LoadFrom("C:\MyFolder\" + ddlXlate.SelectedItem.ToString() + ".dll")
And I consume a Type from that assembly without any problem:
oXML = CType(oAssembly.CreateInstance(sBaseType + ".XlateContainer"), _
XlateBase.XlateContainer)
However, the problem occurs when I try to use a Type from this assembly from within another method like the one below:
oComboBox.DataSource = _
[Enum].GetValues(Type.GetType(sType + "+ItemEnum," + sAssemblyName))
sAssemblyName is the one I loaded using LoadFrom() actually. After it said it cannot find the assembly, I used AssemblyResolve event which solved my problem :Subscribing AssemblyResolve event :
AddHandler AppDomain.CurrentDomain.AssemblyResolve, _
AddressOf MyResolveEventHandler
Event Handler Method:
Private Shared Function MyResolveEventHandler(ByVal sender As Object, _
ByVal args As ResolveEventArgs) As Assembly
Return Assembly.LoadFrom("C:\PSIOBJ\" + args.Name + ".dll")
End Function
And I thought maybe the error occurs because it cannot find a dependent assembly defined in assembly manifest file I loaded using LoadFrom() already but when I checked the args.Name, I saw it was trying to load same assembly and after that it worked without any problem. So basically a type in the loaded assembly cannot be found before the event adding change.
My old code was using AppDomain.CurrentDomain.Load() and Assembly.Load() methods and they were working fine without the AssemblyResolve event. I was able to reach types in dynamically loaded Assembly from every where within the same AppDomain.
LoadFrom() can find dependencies automatically within the same requested assembly path and that couldn't be problem as everything this dll needs was there. So at first it looked like a AppDomain problem to me as it looks like it seems it can reach assemblies from Load context instead of LoadFrom context and I am now using LoadFrom context.But now it seems I should pass oAssembly instance evertwhere to use any type from the loaded assembly?Doesn't it load the assembly where I can reach it everywhere (same AppDomain) using simple Type.GetType(...) method?
View 2 Replies
Oct 3, 2007
I am working on a program that requires me to load 2 dll at runtime.My code is as shown below:
View 2 Replies
Dec 20, 2011
I now have a need to dynamically load a dll into my application and I've found the reflection/assembly information and it's fairly easy to implement so I thought I was on my way. However, I quickly found out that I'm only able to use 'shared' methods. What I was originally thinking was I could have one shared method 'library.beginprocess' and then that would make all the necessary calls to the other methods, but this doesn't work unless all the other methods and class level objects are also shared.
I feel like I'm missing something or somethings just going right over my head. I've looked at many, many sites and examples, but I've only run across examples that expose 1 method,[URL]..which explain how to implement a plugin architechture, which I have not tried yet, but maybe would allow me to keep my class structure the same without having to make everything shared?
View 14 Replies
Nov 25, 2011
I have the below code in a .Net 4 Winforms app which loads an assembly. All files are on a C:. There are numerous DLL's which work fine but two error with the following: [code]
View 3 Replies
Jul 31, 2011
I create a .net dll on the fly with codedom then I load it with Assembly.LoadFrom like this:
Private Sub Test()
Dim ASM As Assembly = Assembly.LoadFrom("test.dll")
'Do some stuff with the loaded assembly...
[code]....
View 1 Replies
Jan 5, 2010
I am loading an assembly using LoadFrom method on a file located in another folder. The assembly is called VisualCronAPI.dll. The assembly that I load has references to another assembly (VisualCron.dll) which contains some general type definitions used in VisualCronAPI. The file VisualCron.dll resides in the same folder as isualCronAPI.dll.When using LoadFrom I see in the output that VisualCron.dll is loaded. I am able to retrieve all methods in VisualCronAPI that uses parameters from VisualCron.dll. I am able to see parameter values However, when trying to create a Type using the following code I get an exception:
Dim t As Type = assem.GetType("VisualCron.NetworkCredentialClass, true)
Exception: Could not load type 'VisualCron.NetworkCredentialClass' from assembly 'VisualCronAPI, Version=1.0.3.32487, Culture=neutral, PublicKeyToken=55f7a52402de1c04'.
[code].....
View 2 Replies
Aug 22, 2009
I used reflection to get the classes, methods inside an Net assembly. Everything works fine when a function only have one version (not overloaded), but when i get overloaded versions i can't get any version...
I build a simple application with a simple class and added a method with two versions, and i can get the correct version using the GetMethod.I don't know if it's the parameters type, but i can get it work. Example, the sub BASS_Init has 2 versions
BASS_Init(ByVal device As Integer, ByVal freq As Integer, ByVal flags As Un4seen.Bass.BASSInit, ByVal win As System.IntPtr, ByVal clsid As System.Guid)and
BASS_Init(ByVal device As Integer, ByVal freq As Integer, ByVal flags As Un4seen.Bass.BASSInit, ByVal win As System.IntPtr) And one of the next two should work, but none works get nothing every time:
[Code]...
View 4 Replies
Jun 1, 2011
I wrote some string extension methods in a VB assembly and am unit testing them from a C# project. However, C# acts like it cannot see the the extension methods, when other VB projects reference the VB assembly they have no problem. Both the VB assemebly and the C# test project are targeting .Net 3.5. Is there a way around this?
[Code]...
View 1 Replies
Dec 26, 2011
I want to use reflection to dynamically call a dll (not an assembly, non-managed, possibly COM object model) in vb.net.I've seen several different methods of calling a method in a dll that is a .net assembly - but I have not found the way to dynamically call a method inside of a dll like user32.dll or winmm.dll. I believe this would be called late-binding?
The reason I'm asking is because I am building a language that will depend on external libraries for lots of different functionality. An example (in this language I'm building):
Declare Function mciSendStringA using "winmm.dll" (strCommand As String, strReturn As String, returnLength As Integer, blah As Integer) As Integer
Declare Function WriteConsoleA using "kernel32.dll" (hConsoleOutput As Integer, lpBuffer As String, numberofcharstowrite as Integer, lpReserved as Integer) As Boolean
When I build the interpreter for the call to mciSendString in winmm.dll, how can I use reflection to handle this? I want the user to be able to reference any dll/method they wish.Can I get some guidance in the right direction? Perhaps even some vb.net code that I can take apart and understand?
View 1 Replies
Aug 3, 2009
I am getting a
"Method not found: 'Boolean MyCompany.LibraryAssembly.SomeFunction (System.String)'"
Exception/error when running a VB.NET console application. The method is part of an external assembly and it is definitely in the assembly. The error only occurs at runtime when I go to enter the function that calls the method. I have the assembly referenced by my project and I am not copying it locally. Intellisense shows no errors, and neither does the compiler. I am loading the assembly statically not dynamically. I reference the from a local folder (not the GAC) although the same version is also available from the GAC.
View 5 Replies
Jun 18, 2008
i am writing a simple games client using an XNA 2.0 engine to play games. The games are written in dll files and the client uses the assembly.loadfrom method to read and execute the games accordingly...Now this all works fine on my computer and my laptop. However when i give it to my friend he gets this error and the dll doesnt load - "Unable to load one or more of the requested types. Retrieve the loader exceptions property for more information"
View 1 Replies
Apr 25, 2012
I have 1 exe and 1 dll. The dll (ClassLibrary1) file is located in the root of a website. In the dll I have a UserControl that populates with data its controls, from a database that is on a website too. The end user gets the exe file. This exe loads the dll and displays the UserControl1 on the form. This is how i load the control from inside the dll (located on the web site), on my form (exe file).
Private _dll As String = "http://www.site.com/ClassLibrary1.dll"
Private _class As String = "ClassLibrary1.UserControl1"
Private WithEvents cont As UserControl
[code]....
The error is "Request for the permission of type 'System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed."Note that if i dont load the usercontrol from the web and instead have it locally, there is no problem. The data are fetched from the database (db is on the web) with no problem.The problem seems to be that the loaded assembly from the web (the usercontrol1 inside the dll) has no permission to access anything. I am not trying to access stuff from the user's pc (like file IO), but access a database located on a web server.
View 3 Replies
Mar 11, 2010
Assume a .NET class library code that, for example, writes to the Windows registry. Then this code has problem to run over internet, because default Internet policy does not give access to write to the registry.By adding a RequestMinimum statement in the assembly we can specify that the code requires permission to write to write to the registry. This will not alter the fact that the code does not have the permission, but will stop the assembly from loading; the runtime will throw a System.Security.Policy.PolicyException and identify the permission that is required.Do you now any other examples of using evidence, security policy and permissions (the key elements of code-access security) to prevent an assembly from loading on a web server?
View 1 Replies
Sep 21, 2011
I need to render a datagrid with different kinds of cells in the same column. For example, I have a datagrid with a column "name" and a colmun "value". Depending on the "type" of my record, I would have different cells in the column "value" like a combobox or a simple textfield. and I don't really see how to do that programmatically... I don't know if the datagrid is the best choice. I'm using asp.net/vb.net with framework 3.5
View 1 Replies
Feb 15, 2012
we know that in Visual Studio, you can open a different kind of database: like: Access, SQL server or file, Oracle. is there any reference that you'v know on how to make that kind of program? i don't know where to start.
View 5 Replies
Aug 18, 2011
those applications that has a plug-in features. What I meant by plug-in is that the application has a capabilities of integration with 3rd party softwares for enhancements.
View 13 Replies
Nov 2, 2009
I have explicitly provided tab stop information, and my form ignores that order at runtime. where i have 1, 2, 3, 4, 5, ... , 13 it goes 6, 1, 2, 8, 3, 4, ...tab stop = true on all of the applicable controls, no labels have tab stop = true...?
View 7 Replies
Sep 24, 2010
Im currently using the streamreader/writer method for writing to a text file im considering implementing a binary search to increase the efficiency of searching through records.
Qus: Does binary search require the text file to be a binary file?Do I need to do binary reader/writer instead of streamreader/writer And are there any tutorials regarding binary operations in vb 2010 this is my first attempt at coding binary operations and have no idea where to start
View 2 Replies
Apr 21, 2010
I have a freshly initialized array that's being passed to a sub routine ByRef to be populated. The array is always empty when passed to the sub routine, which ReDims it as necessary.However, VS complains about this in a Warning:
Quote:
Warning1Variable 'MyArr' is passed by reference before it has been assigned a value. A null reference exception could result at runtime.
Dim MyArr() As Integer
Dim AnotherArr() As String
Call MySub(MyArr, AnotherArr)
The MySub routine populates both arrays. This Warning is meaningless because I very specifically want to pass the arrays to the sub routine BEFORE assigning values because those values will be assigned by the sub routine.Can I disable this type of Warning? No null reference exception will occur because that is being handled by the sub routine.
View 2 Replies
Aug 29, 2011
This is the original code in c#
public class CategoryRepository: RepositoryBase<Category>, ICategoryRepository
{
public CategoryRepository(IDatabaseFactory databaseFactory)
: base(databaseFactory)
[Code]...
Does anyone has an idea what i should change to let it work and let my UserRepository use the methods in RepositoryBase while implementing the IUserRepository?
View 1 Replies
Dec 28, 2005
When running setup to install published program, the following message occurs: System Update Required: Unable to install or run the applicaiton. The application requires that asssembly CrystalDecisions.CrystalReports.Engine Version 10.2.3600.0 be install in the Global Assembly Cache (GAC) first. This version is listed in the references of the program and in my mind, be included in build. How do I get by this error?
View 23 Replies
Apr 18, 2012
When running setup to install published program, the following message occurs: System Update Required: Unable to install or run the applicaiton. The application requires that asssembly CrystalDecisions.CrystalReports.Engine Version 10.2.3600.0 be install in the Global Assembly Cache (GAC) first. This version is listed in the references of the program and in my mind, be included in build. How do I get by this error?
View 2 Replies
Dec 4, 2009
I have recently upgraded an VB6 project to vs2008. I was almost finished when the following error occured. Unable to emit assembly: Referenced assembly AxInterop.MSFlexGridLib does not have a strong name Prior to this error appering, I tested my app several times and it was fine. Only after publishing it did the error appear. I have tried all solutions I could find, but nothing helps. I have read [URL]
View 1 Replies
Jun 17, 2009
I receive this error as "Assembly Load Error" whenever adding a form or other object that has to be inherited.
"Unable to load assembly. Ensure that the file is a valid .net Framwork assembly"
View 1 Replies
Jun 24, 2011
I am working with a vb program, but there is something strange on one of my .vb code pagewhen i put the "dot" afther the object name its dont show the methods availables for this objectbut on other vb code pages i can see it. but in this one no.for exmaplethis is a piece of code: Dim sb As New StringBuilder()
View 3 Replies
Mar 29, 2010
I am not sure how clear my question is by the title, but I am trying to make Class methods instead of Instance methods in Visual Basic that way I don't have to waste memory and code creating temporary objects to execute methods that don't need instance variables.
I am not sure if you can do that in VB but I know you can in Objective-C by using either a "+" or "-" sign in front of the method declaration. And in C++ (at least I think, I can't remember) you put the static keyword or const keyword in front of the function.How would I do this in VB if it is possible? Or should I just make a separate set of functions that are not members of a class?
View 2 Replies
Jun 1, 2011
I'm wanting to include a system tray icon in my WPF project, and found this resource:[URL]..which looks like it will work beautifully, but it's written for C# and I'm using VB.net for this project. I downloaded his project and built the notifyicon as a DLL, then added as a reference to my project.
It throws up an error: Unable to emit assembly: Referenced assembly 'Hardcodet.Wpf.TaskbarNotification' does not have a strong name So I'm trying to figure out the best way to proceed. Do I need to strong name it, or is there a better way to do this?
View 2 Replies
Oct 9, 2008
I've got an exception when I deployed my application: "the located assembly's manifest does not match the assembly reference" What I remember is changing the project name from the previous source code, does it affect that much?
View 1 Replies
Jun 25, 2012
I have created several DLL (.NET) libraries that are used in several projects. In these DLL libraries I want to know/retrieve which assembly (EXE) calls/uses the library, so if possible I want to know info like assembly name (EXE), strong name, version number, etc.
NB: Examples may be in C# or VB. I use both languages.
View 2 Replies