实例化COM类给出错误

时间:2010-11-01 12:10:18

标签: c# com com-interop

我将以下C#代码执行到Test环境和PROD服务器:

此代码检查它是否能够在服务器上实例化COM类:

     try
            {
                Type creatorType = Type.GetTypeFromProgID("A.B");

                MessageBox.Show("Trying to create instance for :" + "A.B");

                creator = (IMyInterface)Activator.CreateInstance(creatorType);

                MessageBox.Show("A.B object instance is : " + creator.GetType().ToString());
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

此代码在我的机器,测试环境中正常工作,但在PROD中没有。 在PROD上,我收到一条错误消息:“值不能为null.Parameter name:type”在该行: - >

creator = (IMyInterface)Activator.CreateInstance(creatorType);

PROD服务器上安装了所需的COM dll。我在这里缺少什么?

感谢。

1 个答案:

答案 0 :(得分:2)

那么,在那一行,我猜只有creatorType可以为null。并且因为type.GetTypeFromProgID返回了creatorType,所以该方法可能会返回(如MSDN所说):

与指定的ProgID关联的类型,如果progID是注册表中的有效条目并且类型与之关联;否则,null。

因此,这可能意味着您的COM dll未在服务器上安装正常。你能在注册表中找到你的COM dll吗?