2013-03-15 6 views
0

третий день пытаются решить мою проблему, но не повезло (( ниже подам FunnyWorld3.cs. Я зарегистрировал этот компонент, здесь нет никаких проблемвызов метода из COM-объекта

[assembly: AssemblyKeyFile("Keys.snk")] 
public interface IFunnyWorld3 
{ 
    void SayHello(String param); 
}; 

[ 
    ClassInterface(ClassInterfaceType.AutoDual) 
] 

public class FunnyWorld3 : IFunnyWorld3 
{ 
    public void SayHello(String param) 
    { 
     MessageBox.Show(param, "FunnyWorld::SayHello metnod was invoked"); 
    } 
}; 

Затем я создал с # проект, с кодом:?

Type comType = Type.GetTypeFromProgID("FunnyWorld3", true); 
object comObj = Activator.CreateInstance(comType) 

Что дальше Как я вызвать метод SayHello в моем проекте Пожалуйста, помогите ((

ответ

1

для вызова метода, который необходимо преобразовать его в IFunnyWorld3, который определяет метод.

IFunnyWorld3 fw = (IFunnyWorld3)comObj; 
fw.SayHello("message"); 
+0

Спасибо, я попробовал это, но «имя типа или имени пространства IFunnyWorld3 не найдено» – hereWeTrust

0

Как насчет литья? Если вы получили ссылку на object, то вы должны быть в состоянии бросить его:

IFunnyWorld3 fw3 = (IFunnyWorld3) comObj; 

Затем вызовите ваш метод впоследствии. Как

fw3.SayHello("Hello, World"); 
Смежные вопросы