1-) windows form aplication(1 BUTTON, 2 TEXBOX)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Reflection;
namespace dinamik_windows
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
var DLL = Assembly.LoadFile(@"D:\C# çalışmalarım\dinamik_dll\dinamik_dll\bin\Debug\dinamik_dll.dll");//dll nin bulunduğu path
foreach (Type type in DLL.GetExportedTypes())
{
dynamic c = Activator.CreateInstance(type);//
if (c.ToString() == "dinamik_dll.Class1")//dll deki class2 için çünkü metodları farklı
{
c.Goster();//dinamik_dll.dll deki method ismi Goster()
c.gelen_text = textBox1.Text;//dll deki public olan stringe deger atadık
c.yaz();//dinamik_dll.dll deki method ismi yaz("string deger alıyor");
}
if (c.ToString() == "dinamik_dll.Class2")//dll deki class2 için çünkü metodları farklı
{
c.sinif2_goster();
c.sinif2_yaz(textBox2.Text);
}
}
}
}
}
2-) CLASS LİBRARY YANİ DLL(dinamik_dll.dll)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace dinamik_dll
{
public class Class1
{
public Label etiket;
Form form = new Form();
public string gelen_text;//windows formdan deger gonderdık buna
public void Goster()
{
form.Text = "ramazan haber";
Button buttonn = new Button();
buttonn.Text = "okey";
buttonn.Width = 100;
buttonn.Height = 100;
buttonn.SetBounds(10, 10, 100, 100);
form.Controls.Add(buttonn);
form.Show();
}
public void yaz()
{
etiket = new Label();
etiket.Text = gelen_text;//windows formdan deger gonderdık buna
etiket.SetBounds(10, 200, 100, 100);
form.Controls.Add(etiket);
}
}
public class Class2
{
public Label etiket;
Form form = new Form();
public void sinif2_goster()
{
form.Text = "ramazan haber";
Button buttonn = new Button();
buttonn.Text = "okey";
buttonn.Width = 100;
buttonn.Height = 100;
buttonn.SetBounds(10, 10, 100, 100);
form.Controls.Add(buttonn);
form.Show();
}
public void sinif2_yaz(String merhaba)
{
etiket = new Label();
etiket.Text = merhaba;
etiket.SetBounds(10, 200, 100, 100);
form.Controls.Add(etiket);
}
}
}