【问题标题】:call method from COM object从 COM 对象调用方法
【发布时间】:2013-03-16 05:37:44
【问题描述】:

第三天尝试解决我的问题,但没有运气(( 下面是我的 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 方法?请帮忙((

【问题讨论】:

    标签: c# .net com


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,我试过了,但是“找不到类型或命名空间名称 IFunnyWorld3”
    【解决方案2】:

    铸造怎么样?如果您获得了对 object 的引用,那么您应该可以转换它:

    IFunnyWorld3 fw3 = (IFunnyWorld3) comObj;
    

    然后调用你的方法。喜欢

    fw3.SayHello("Hello, World");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-23
      • 2017-01-02
      • 1970-01-01
      • 2011-03-05
      • 2014-03-05
      • 2021-09-14
      • 2011-09-25
      • 2014-09-29
      相关资源
      最近更新 更多