• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 410
  • Last Modified:

[C#] How to read DLL to array of bytes?

Hello,
How to read DLL file from hard disk and load it to my app into byte array? My dll file is in same folder what my application .exe. I don't want to use this dll in this app I wanna only read it into array of byte and send this array to another app.
Thx a lot

Regards
0
F0x88
Asked:
F0x88
1 Solution
 
HarryNSCommented:
You can go for Reflection... You can read a dll using reflection
Assembly a = Assembly.Load("helloworld");

Pass this object to another app.
0
 
F0x88Author Commented:
hmm I don't know how to call later methods in another application if I good using it. I have server and client app. on server I have my class HelloWorld(this class can be in DLL what using server but its not that important), I just want to return this class to client app as assembly, on RemotableObject class I have only interface with method what returns this assembly class. Check my code... remote client have error during Assembly RemoteClass = objget.GetClass();
Could not load file or assembly 'HelloClass, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.

why? I can't send my class/dll to another app and use thier methods?
server app:
...
using HelloClass;
 
namespace RemoteServerApplication
{
    public class HelloServer : MarshalByRefObject, IExecute
    {
 
        public Assembly GetClass()
        {
            Assembly a = Assembly.Load("HelloClass");
            return a;
        }
 
    }
}
 
HelloClass in dll file(referenced only to server):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace HelloClass
{
    public class HelloWorld
    {
        public void TestMe()
        {
            Console.WriteLine("Test string what will be writen in client.");
        }
    }
}
 
remotable object with interface(referenced to client and server):
public interface IExecute
    {
        Assembly GetClass();
    }
 
 
client gets this assembly:
IExecute objget = (IExecute)Activator.GetObject(
                    typeof(IExecute), "tcp://localhost:8085/RemoteTestRef");
            if (objget == null)
                Console.WriteLine("Could not locate server");
            else
            {
           
                Assembly RemoteClass = objget.GetClass();
}

Open in new window

0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now