首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# ComVisible DLL未注册

C# ComVisible DLL未注册
EN

Stack Overflow用户
提问于 2012-06-28 07:07:19
回答 1查看 429关注 0票数 0

我为运行windows2003服务器的人工作。他们想让我做一个SMTP接收器,它可以对我们想要发送消息的数据库和表进行分类。他们在此服务器上没有exchange,只有默认的虚拟SMTP服务器。

我已经创建了一个类,我认为它应该在SMTP服务器到达事件发生时触发。我在注册我的类时遇到了一个问题,但是,当我运行RegAsm /regfile时,我得到了一个"Warning,RA0000: no registeration registeration,no types to register“的警告。如果我用/TLB运行RegAsm,它会告诉我类型已注册,但按类不会显示在全局注册表中,当邮件发送到服务器时,我的类也不会被调用。我有点不知所措,不知道我做错了什么。

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;


namespace SMTPSink
{
    [Guid("????-????-?????-????")]
    [ComVisible(true)]
    [ProgId("SMTPSINK")]
    public class SMTPSink : CDO.ISMTPOnArrival
    {
        SMTPSink()
        { }

        void CDO.ISMTPOnArrival.OnArrival(CDO.Message Message, ref CDO.CdoEventStatus EStatus)
        {
            //Simple test to see if this fires on mail arrival
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-28 07:56:11

您忘记将构造函数设置为公共的。导出不具有不可创建的类型库属性的coclass时需要。修复:

代码语言:javascript
复制
    public SMTPSink()
    { }

或者,如果它没有做任何有用的事情,就直接省略它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11236003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档