Аналог CreateObject() в C# ?
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Аналог CreateObject() в C# ? Expand / Collapse
Автор
Сообщение
24.02.2003 18:34
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 19.04.2004 18:45
Сообщ.: 10, Visits: 111
В VB6 и, видимо, в VB.NET есть функции CreateOblect(), GetObject. Удобно, если ты хочешь писать код для работы с Word, Excel, не зная при этом, что будет установлено у клиента: Ofice98, 2000 или XP.
А как в C#?
Сообщ. #775484
26.02.2003 11:00
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 06.05.2003 10:28
Сообщ.: 3, Visits: 34
Вообще не вижу надобности в шарпе использовать CreateObject
альтернативы не нашел хотя подобрался уж совсем близко
ну а коли совсем писпичило то подключай Microsoft.VisualBasic референц
и пользуйся пжалста
Microsoft.VisualBasic.Interaction.CreateObject("Word.Application")
Если чего получится расскажешь?
Сообщ. #775627
26.02.2003 16:10
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 15.12.2003 1:17
Сообщ.: 85, Visits: 969
System.Type type = System.Type.GetTypeFromProgId( "YourProg.Id" );
object obj = Activator.CreateInstance( type );

type.InvokeMember( obj, "YourMethod", ... );

Вот примерно в таком духе, в таком разрезе.
Сообщ. #775643
26.02.2003 16:44
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 12.04.2003 13:03
Сообщ.: 40, Visits: 452
Не совсем напугал. :) Вот если привести строку в полном объёме:

object[] TestParams = {"Какая-то строка", 5};
object result = type.InvokeMember("TestProc", Reflection.BindingFlags.Default or Reflection.BindingFlags.InvokeMethod, Nothing, obj, TestParams);

боюсь, это НАДОЛГО отобьёт у него охоту использовать позднее связывание, которое к тому же медленно работает.
Сообщ. #775651
26.02.2003 16:46
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 12.04.2003 13:03
Сообщ.: 40, Visits: 452
То есть не Nothing, а null... VB'шная привычка...
Сообщ. #775652
26.02.2003 17:20
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 15.12.2003 1:17
Сообщ.: 85, Visits: 969
Тогда уж и не OR, а ||
Сообщ. #775655
26.02.2003 17:20
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 15.12.2003 1:17
Сообщ.: 85, Visits: 969
Тогда уж и не OR, а |
Сообщ. #775656
26.02.2003 17:22
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 15.12.2003 1:17
Сообщ.: 85, Visits: 969
А как же, интересно, без позднего связывания до офиса добраться? (и не надо мне говорить про PIA - они тоже лишь обертка вокруг COM, да и работают только под Office XP)
Сообщ. #775658
26.02.2003 17:31
Forum Member