limpizik
یک شنبه 16 فروردین 1394, 04:11 صبح
سلام دوستان.
من قصدم اینه بدون add کردن فایل dll بتونم از فانکشن هاش استفاده کنم.با سرچی ک زدم یه چیزایی دستگیرم شد اما نتونستم اجرا کنم.
ابتدا یه فایل dll ایجاد میکنم به این شکل(لطفا به نام فانکشن و کلاس دقت کنید) :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace class1
{
public class class1
{
public static void func(string str) {
MessageBox.Show(str);
}
}
}
بعد یه پروژه Windows Form Application ایجاد میکنم و این فانکشن ها رو درش میسازم :
(class1 و func)
public static void Run(byte[] dll_byte, object[] dll_obj, string Class, string adress)
{
Assembly byteassem = Assembly.Load(dll_byte);
MethodInfo method_Run = byteassem.GetType(Class).GetMethod(adress);
method_Run.Invoke(null, dll_obj);
}
//////////////////////////////////
public static void Load_Dll(string str)
{
byte[] dll_path = File.ReadAllBytes("MyDllFile.dll");
Run(dll_path, new object[] { str }, "class1", "func");
}
و بعد یه جا با این فراخوانیش میکنم :
Load_Dll("Peigham");
و در نهایت کد کامپایل میشه اما در هنگام اجرا با خطا مواجه میشه.
ممنون میشم کمک کنید
من قصدم اینه بدون add کردن فایل dll بتونم از فانکشن هاش استفاده کنم.با سرچی ک زدم یه چیزایی دستگیرم شد اما نتونستم اجرا کنم.
ابتدا یه فایل dll ایجاد میکنم به این شکل(لطفا به نام فانکشن و کلاس دقت کنید) :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace class1
{
public class class1
{
public static void func(string str) {
MessageBox.Show(str);
}
}
}
بعد یه پروژه Windows Form Application ایجاد میکنم و این فانکشن ها رو درش میسازم :
(class1 و func)
public static void Run(byte[] dll_byte, object[] dll_obj, string Class, string adress)
{
Assembly byteassem = Assembly.Load(dll_byte);
MethodInfo method_Run = byteassem.GetType(Class).GetMethod(adress);
method_Run.Invoke(null, dll_obj);
}
//////////////////////////////////
public static void Load_Dll(string str)
{
byte[] dll_path = File.ReadAllBytes("MyDllFile.dll");
Run(dll_path, new object[] { str }, "class1", "func");
}
و بعد یه جا با این فراخوانیش میکنم :
Load_Dll("Peigham");
و در نهایت کد کامپایل میشه اما در هنگام اجرا با خطا مواجه میشه.
ممنون میشم کمک کنید