Запуск dll с параметром и обращение к её компонентам

Алексей Ку.
Дата: 22.04.2014 15:05:03
Доброго дня, знатоки!
Потратил немало времени на поиск ответа, но таки не нашёл решения. Очень прошу помочь вас!
Ситуация следующая:

Есть Dll, В ней форма

namespace ClassLibrary1
{
    public partial class Form1 : Form
    {
        public const int _Id = 6;
        public const string field1 = "1";
        public const string field2 = "2";
        public const string field3 = "3";

        public Form1()
        {
            InitializeComponent();
            label1.Text = _Id.ToString() + field1 + field2 + field3;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            MessageBox.Show(field1 + field2 + field3);
        }
    }
}


Есть второй проект: простая форма с кнопкой. По клику на которую:

private void button1_Click(object sender, EventArgs e)
        {
            Assembly testAssembly = Assembly.LoadFrom("ClassLibrary1.dll");

            Type curType = null;
            foreach (Type type in testAssembly.GetTypes())
            {
                if (type.IsClass)
                {
                    curType = type;
                }
            }
            Form form = (Form)Activator.CreateInstance(curType);
            form.ShowDialog(); // Or Application.Run(form)
        
        }


Как я могу получить доступ к полям filed1..3 класса Form1?
Как при создании Form1 в неё передать, например, строку подключения?

Суть в том, что Dllки будут подключаться по ходу выполнения программы, т.е. заранее я не могу добавить референс на неё. Само собой у всех Dll имена параметров и методов будут одинаковые.

Приветствуется указания "тегов" чего гуглить и учить.
Алексей Ку.
Дата: 22.04.2014 15:37:59
Везде все добавляют референс. А у меня так не получается. Вот и не могу найти информацию как делать это динамически.
Где-то в степи
Дата: 22.04.2014 15:45:31
Алексей Ку.,
наводящий вопрос, Вы знаете что такое Интерфейсы, Атрибуты, ну на худой конец рефлексия?
Алексей Ку.
Дата: 22.04.2014 15:49:09
Интерефейсы да, Аттрибуты и Рефлексия нет.

Я правильно понял что нужно начать с создания интерфейма для всех DLl?
pation
Дата: 22.04.2014 16:12:12
Алексей Ку.,

может тебе нужен mef?
Алексей Ку.
Дата: 22.04.2014 17:18:56
pation,

После беглого просмотря стало ясно что мне всё равно нужно начать с аттрибутов и рефлексии ) Ну что ж. Да поможет мне Троелсен )
Алексей Ку.
Дата: 22.04.2014 20:41:43
Для тех работает над подобной проблемой: У Троелсена в книге C# 5.0, то что мне надо называется позднее связывание.
Изопропил
Дата: 22.04.2014 20:43:06
Алексей Ку.
У Троелсена в книге C# 5.0, то что мне надо называется позднее связывание.

не лучшее решение
Алексей Ку.
Дата: 22.04.2014 22:59:27
Изопропил,
Посоветуете чтото другое?
Изопропил
Дата: 22.04.2014 23:02:23
Алексей Ку.
Я правильно понял что нужно начать с создания интерфейма для всех DLl?

правильно