/ / Завантажте збірку динамічно і створіть змінну свого типу - c #, dll, excel-interop

Завантажте збірку динамічно та створіть змінну свого типу - c #, dll, excel-interop

Я намагаюся завантажити збірку динамічно і створити змінну свого типу:

Assembly Ass= Assembly.LoadFrom(@"d:abcmicrosoft.office.interop.excel.dll");
foreach(Type Excel Assembly.Gettypes())
{
// here now  Type contains
// Excel.nameSpace="microsoft.officce.interop.excel"

// now i need to creae an variable of  type "Excel"

microsoft.officce.interop.excel.applicationClass excel= null;
// something like this
//Here  Excel is my nameSpace
Excel.officce.interop.excel.applicationClass excel= null
}

Я працюю над цим з минулих 2 днів будь-якої допомоги, як я можу оголосити мою змінну типу Excel (це той тип, який мені потрібно створити)

будь-яка допомога буде чудовою спасибі

Відповіді:

2 для відповіді № 1

Я не впевнений, що це буде працювати для цього збірки, але загалом ви можете зробити це, отримавши тип з агрегату, потім створити екземпляр за допомогою Activator.CreateInstance:

Type type = assembly.GetType("MyType");

object instanceOfMyType = Activator.CreateInstance(type);

вам потрібно знати назву типу, який ви хочете створити ("Excel.Application"?)

ви також можете отримати тип безпосередньо з dll, якщо ви знаєте шлях до нього:

Activator.CreateInstance(assmblyFileName, typeName)

Я не знаю, що це буде працювати для цього збірки, оскільки це COM-збірка, так що я думаю, вам доведеться використовувати COM для доступу до нього, але це можливо.

EDIT:

ви, мабуть, краще скористатися документальними способами для цього:

Цільові програми для офісу через основні агрегати Interop повинен бути гарним місцем для початку


0 для відповіді № 2

Чому б не додати посилання на збірку? Крім того, на перший погляд у вас є орфографічна помилка, ви написали офіс в microsoft.officce.interop з 2 c "s, що може бути, тому, якщо ви скопіювали та вставили код.

Ось як я використовую Excel COM:

using Excel = Microsoft.Office.Interop.Excel;
Excel.Application excelApp = new Excel.ApplicationClass();

Редагувати:

Також я бачу, що у вас є проблеми з простору імен. Просторі імен Excel не існує, тому що ви коментували простір імен Excel, тому слід самостійно працювати.

Microsoft.Office.Interop.Excel.ApplicationClass excel = null;

без:

Excel.officce.interop.excel.applicationClass excel= null