[C#]korzystanie z obiektow klasy z dynamicznie ladowanej DLL

0

Witam,
jak można wczytać plik dll do tablicy bajtów w C#? Musze czytać przez filestream? Czy jest jakis inny sposób?
pzdr

0

Szybciej przez:
File.ReadAllBytes();</code>

0

dzieki,
mam nadzieje że uda sie z takiej formy wczytać dllke później i z niej korzystać
pzdr

0

No raczej nie bardzo. Może napisz co chcesz uzyskać. Może złą drogą idziesz...

0

Tak, da się wczytać bibliotekę w formie tablicy bajtów.

0

A nie lepiej jakoś za pomocą klasy Assembly.LoadXXXX to robić?

0

Właśnie wczytuje to przez Assembly.Load z tym ze nie wiem co potem za bardzo... wiem ze cos z Assembly.GetTypes trzeba kombinowac bo nie mozna tak po prostu uzyc danych metod z tej wczytanej dllki poniewaz typy sa nieznane dalej ale skoro wczytał to i nie zgłasza żadnych problemów to wydaje mi się ze po prostu musze teraz znaleźć jakis przykład uzycia tak wczytanej dllki.

0

sry nie napisałem co dokładnie chce uzyskać.. po prostu zwracam tą dllke do innego programu (zdalnego) i tam chce jej uzyć

0

Kolejny abuser...

0

Ale to nadal nie widzę sensu, aby wczytywać to jako tablicę bajtów. Możesz przecież DLL'kę wczytać po nazwie.

0

co prosze? :-D

moge wczytac po nazwie bo jest załadowana w aplikacji z której ja wysyłam tylko ze jak przez Assembly ją zwracam to sie wysypuje ;/ ale udalo mis ie wczytac już przez tablice wiec teraz chcialbym jeszcze jakos uzyc metod w niej zawartych :-)

0

Oki nie będę wnikał już.

Aby użyć metod i typów posłuż się metodą Assembly.GetTypes a potem na Type masz GetMethods.

0
byte[] bdll = objget.GetNewClass();
 Assembly ax = Assembly.Load(bdll);
 var hw = ax.GetType("HelloWorld");
 MethodInfo mi = hw.GetMethod("TestMe");

w ostatniej linijce sie wykrzacza Object reference not set to an instance of an object. nie rozumiem czemu posiadam taka metode w klasie HelloWorld

public void TestMe()
        {
            Console.WriteLine("Invoked Hello World");
        }
0

Skoro dostajesz w ostatniej linijce to znaczy, że hw jest nullem. Wg. mnie nazwa typu powinna być z Namespace'em.

0

Masz racje z namespace juz sie nie wykłada ciekawe czemu wczesniej nie zwrocilo bledu tylko dopiero przy GetMethod ale nie wazne a jak mam ja wywołać teraz bo samo pobranie nci nie zmienia domyslam sie ze invoke ale jest jeden problem bo

object result = mi.Invoke();

bo invoke woła jeśc o dwa paremetry pierwszy object a drugi tablice object[] z parametrami, nie wiem co mam podać w pierwszym po prostu bo w drugim jaknie mam parametrow to zwroce pusty object i tyle(mam nadzieje) ale co mam podać jako pierwszy parametr? troche zagmatwane przeciez pobieralem konkretna metode a nie wszytkie naraz...

0

OK udało sie jednak pokombinowałem i utworzyłem jeszcze instance tego typu pobranego przez Activatora i działa jak trzeba
wielkie dziekie za pomoc! [browar]

1 użytkowników online, w tym zalogowanych: 0, gości: 1