Dynamic Assembly Loading And Using 'Shared' Methods?

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


ADVERTISEMENT

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

.net - Why Can't Call Private Shared Methods From A Public Shared Method

Aug 25, 2011

I have a class like this:

[Code]...

It works, when I make getBar methods public, but I don't want to expose these unneccessarily. Why I can't call private shared methods from a public one in the same class is over my head. I'm using .net framework 4.0 in a web application.

View 1 Replies

C# - Loading An Assembly Using Assembly.LoadFrom() As The Assemblies Are Located In A Different Path?

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

Use Derived Class Shared Variables In Shared Methods Of Base Class?

Jun 4, 2010

I am trying to add shared members in derived classes and use that values in base classes...

I have base

class DBLayer
public shared function GetDetail(byval UIN as integer)
dim StrSql = string.format("select * from {0} where uin = {1}", tablename, uin)
end function
end class

[Code]..

currently there is error using the tablename variable of derived class in base class but i want to use it i dun know other techniques if other solutions are better then u can post it or u can say how can i make it work? confused...

View 2 Replies

Shared Methods In ASP.NET Sessions

Feb 25, 2011

As a followup to the previous question I have asked "ASP.Net Architecture Specific to Shared/Static functions" I am still struggling to understand the implications of using shared methods in ASP.NET.

So for example let us take the following code.[code...]

View 3 Replies

Get The Classes, Methods Inside An Net Assembly?

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

Application Wide Shared Methods

Jul 26, 2011

I am developing an application that has multiple forms and I wanted to know the best method to have application wide methods and functions. Currently I am using a Module with all my methods that are needed to be used across the entire application in it. However, I read at one point that modules should not be used, as they are only there to preserve backwards compatibility with older VB code. Is there a better way to have methods able to be called anywhere?

View 1 Replies

C# - Static (Shared In VB) Or Normal Methods

Oct 27, 2009

I Want to know which one is preferred while coding to use Static Methods or normal instances, I prefer to use static if they where few but if there was many of them I start to get some doubts

[code]...

if the EmployeeManager Has Many methods (selects deletes updates) is it ok to make them all static.and if it was Normal instance. wouldn't be a drawback if the object is initiated every time specially if GetAllEmployees() is heavily used.What is the better approach to use?

View 3 Replies

Calling Private Shared Methods?

Aug 8, 2011

I have a form (frmMain) that contains a custom control (con class). frmMain contains a combo box control and when the user selects a value from it, I pass this value to a sub routine within con class (see red line below). This purpose of the sub routine is to populate a set of comboxes contained in con class according to the value that is passed in.

Private Sub cboGuidelines_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboGuidelines.SelectedIndexChanged
If bChanged = True Then

[code].....

View 6 Replies

Derived Class Shared Methods?

Nov 3, 2010

I have a function that 2 derived classes use, but the third doesn't, would it make sense to just leave it in the base class, even though one of the 3 derived classes doesn't use it?The only way I could think of disallowing the third class is to basically create an intermediate class that is derived of the base, then the 2 that use the common function are derived off the second class.

Is it possible to prevent the 3rd class from using the function, while letting the two that are supposed to use it, use it?Does that just seem to go overboard, I mean as long as I don't "try" to call the function from the 3rd class, it shouldn't be a problem, I just was interested if there was a way to prevent it all together without a lot of hassle.

View 2 Replies

OOP - Shared Methods And Base Properties?

Feb 25, 2009

If you can't use Me. in a non-instance method, how would you use properties/functions from a base class in a Shared method?

For example, ClassB inherits from ClassA
ClassB has a Shared Method DoWork();
ClassA has a ReadOnly Property SecurityKey

How do I Public Sub DoWork() Dim test as String = Me.SecurityKey End Sub

View 5 Replies

Shared Class With Generic Methods?

Jan 28, 2010

I have created a Interface and a couple classes that implement this Interface. I am in the process of developing a Shared Class that utilizes the functions that each of the individual classes have, due to the interface implementation.What i need to know is how do i develop this Shared Class so that way each of the methods within it are restricted to a single data type. This single data type needs to be restricted to any class that has implemented the Interface.

Some examples:

Public Interface IVector(Of T)
Sub Add(ByVal v2 as T)

[code]....

As you can see it would allow me to develop one form, since i have standardized the required Subs/Functions for any class the implements the IVector interface. As i am still in developement, i was wondering if my current understanding of the method generics is correct in its current form or what i would have to do to make the Generic Shared Class work in the fashion that i am looking for in the example implementation.

View 6 Replies

Subclassing Object With Shared Methods

Aug 3, 2009

I want to create a subclass of a class that has some shared methods. These shared methods all call one specific method. But I can't redefine that specific method in the subclass. If I try to make it overridable in the parent class, it says that shared and overridable can't both be used.

[Code]...

View 5 Replies

.net - Extension Methods In VB 2008 Assembly Cannot Be Used In A C# Project?

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

Anything Wrong With Using Lots Of Shared Methods And Objects

Jul 9, 2009

I seem to find more and more that I declare a lot of objects or methods as Shared now but it feels like I am not doing things properly.I try to avoid doing this but then I just end up with situations where I have to create an instance of a class just to call one method that would act no differently if it was just a shared method.Basically I'm just wanting to know if there is any good reason to avoid using Shared objects/methods. Obviously I dont declare EVERYTHING as shared, but it just seems to make things a lot simpler most of the time.For example in my current project (a chat application using WCF) I have a class just called Core which houses a lot of the main functions of the client program, so it has methods such as: SignUserIn, SignUserOut, SendMessage, MessageReceived etc and it also holds properties such as a list that contains all of the currently online users. These things are all declared Shared in my program because as far as I can see there is no reason for having to do this:[code]

View 15 Replies

Calling Shared Methods From .NET Class Library In VB6

Jan 25, 2010

I have the following class in a .NET class library:

Code:
Public Class JasonTest
Sub New()
End Sub

[Code]....

The .AddNumbers call works fine, but the AddStrings call yields the error 'Object doesn't support this property or method'.

Is there any way to call a shared method from .NET in VB6? I was unable to find any documentation on this.

View 5 Replies

Calling Methods In Non-assembly (non-managed) Dlls Through Reflection In .net?

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

Overload Shared Methods On Non-instance Types Using Extensions?

May 14, 2012

I want to extend the BitConverter class with an overload of ToString() that takes a parameter of type Char, representing a value delimiter.Why? By default, the ToString() call returns a string representation of a byte array, delimited by dash symbols. The signature does not allow you to specify a different delimiter, which I find very unfortunate.Now because this is not an instance type, or maybe because I'm overloading a shared method, I'm having a hard time finding the proper syntax to define my extension method.What am I doing wrong here, causing the overloads to not show up in IntelliSense:

Imports System.Runtime.CompilerServices
Module BitConverterExtensions
<Extension()>

[code].....

View 1 Replies

Passing Parameters By Reference Into Public Shared Methods

Oct 21, 2009

I have a List(Of AddlInfo) with AddlInfo being an object. I'm trying to pass addlInfoList by reference into a function of another class:

[Code]...

This works if I'm not passing the reference into another class, but when I try to do this, I get the following error: Overload resolution failed because no accessible 'Sort' can be called with these arguments:

[Code]...

View 1 Replies

Purpose Of Using Shared Methods That Return An Instance Of A Class?

Oct 11, 2010

What is the purpose of using shared methods that return an instance of a class, as opposed to a constructor?

ie: in VB.net, the system.drawing.color class has shared method "FromArgb(int, int, int) as color". This is different from java's implementation which simply is a constructor that takes three ints. Why the decision to do one or the other?

View 1 Replies

Will Modifying Shared Methods Change The Class That Reference Them

Jun 4, 2011

I'm wondering what will actually change a class, in the sense that serialized objects of this class will no longer be recognized. If the class has reference to shared methods of another class. Will changing such shared methods also change the classes that reference them?

View 3 Replies

Mimic An Interface / Contract For Shared Methods In A Class For Use By Generics?

Nov 15, 2010

So I implemented my own form of Enum static classes so I can associate strings to enumeration values. One of the shared functions in each enum class, GetValue, is used to quickly look up the string value from an internal array via the offset. While all of the enum classes implement the same exact function, the data types of their parameters differ, specific to the enums in each class.

So I come to a point where I want to create a generic class that can use any of the enums by passing it as a generic type parameter. But I cannot find a way to constrain type T in such a way to be able to call each enum's GetValue function. This is where an interface would come in handy, but VB.NET forbids interfaces for shared methods.

I have a base class that I could constrain to, but the base class doesn't implement the GetValue method, and I can't define a generic version of it, because I need to rely on shared properties of each child class in order for GetValue to do its thing.[code]..

View 2 Replies

Using A Dynamic Assembly In A Windows Service

Jun 11, 2010

I'm using the following code to create a dynamic assembly in my windows service:

[Code]...

View 2 Replies

Method Not Found When Loading Assembly

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

Shared Variable For Multiple Loading

Jul 22, 2011

I need some tips for shared variable to share the information for multiple running application. For example, the value of variable become 1 when a user run the first instance(execution), and become 2 when the user executes the second(in sames OS or through network).

View 3 Replies

Deployment :: Reflection Error Loading Assembly?

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

Loading 2 Dll Using System.Reflection.Assembly.LoadFrom?

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

Dynamic Invocation Of Methods In DLLs / How To Change Method Signature

Dec 27, 2011

I am using some interesting code to perform dynamic unmanaged dll calling:[code]I want to be able to change the parameter signature and type of the delegate to void or to a function returning integer, string, or boolean.Basically, I want my program (interpreter) to be able to call upon any method in any unmanaged dll that the programmer has access to since I cannot predict what method the programmer will want to have access to - I'd like to enable them to have access to any useful method.[code]This raises a complaint on the line with 'Dim theResult = ' on it. The error is "Object of type 'System.Int32' cannot be converted to type 'System.Object[]'."

View 1 Replies

SqlClientPermission Failed When Accessing Database By Loading Assembly From Web?

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







Copyrights 2005-15 www.BigResource.com, All rights reserved