我用.net试着写一个组件,编译没问题,可用客户端调用时总是出现错误:
未处理的“System.NullReferenceException”类型的异常出现在 system.enterpriseservices.thunk.dll 中。
其他信息: 未将对象引用设置到对象的实例。组件的代码:
using System;
using System.EnterpriseServices;[assembly: ApplicationName("Hello World")]
[assembly: ApplicationActivation(ActivationOption.Library)]
namespace HelloWorld
{
public class MyComponent: ServicedComponent
{
public string WakeUp()
{
return "Hello World!";
}
}
}客户端是Windows程序,已引用组件,代码很简单:
HelloWorld.MyComponent  obj=new HelloWorld.MyComponent() ;
textBox1.Text =obj.WakeUp();如果将组件继承ServicedComponent类去掉,作为普通组件使用,则没有问题。
各位帮忙解释一下。

解决方案 »

  1.   

    要将此类部署为一个已配置的 COM 组件,必须生成一个强密钥,将此类作为一个库进行编译,然后注册该库。
    http://msdn2.microsoft.com/zh-cn/library/system.enterpriseservices.servicedcomponent(VS.80).aspx
      

  2.   

    sn -k MySk.snk
    csc /t:library My.cs
    regsvcs My.dll
    查查MSDN,上面有的说
      

  3.   

    我已使用强名称,在VS2003命令提示窗口用regsvcs   *.dll   
    仍然提示“未将对象引用设置到对象的实例” 
    不能注册,实在是百思不得其解啊!