Я намагаюся завантажити збірку динамічно і створити змінну свого типу:
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