0

第三天尝试解决我的问题,但没有运气((下面是我的FunnyWorld3.cs文件。我注册了这个组件,这里没有问题

[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");
    }
};

然后我创建了 c# 项目,代码:

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

下一步是什么?如何在我的项目中调用 SayHello 方法?请帮忙((

4

2 回答 2

1

要调用该方法,您需要将其转换为IFunnyWorld3定义该方法的类型。

IFunnyWorld3 fw = (IFunnyWorld3)comObj;
fw.SayHello("message");
于 2013-03-15T21:37:15.947 回答
0

铸造怎么样?如果您获得了参考,object那么您应该可以对其进行转换:

IFunnyWorld3 fw3 = (IFunnyWorld3) comObj;

然后调用你的方法。喜欢

fw3.SayHello("Hello, World");
于 2013-03-15T21:37:44.113 回答