【发布时间】:2012-11-16 22:11:46
【问题描述】:
我可以生成 COM 可见程序集(使用 CodeDom 或其他任何东西)吗?
我希望将 C# 类公开给 VBA。基本上,我有一个对象驱动的 Web 服务器,每次构建我的 Web 服务器时,我还想生成一些包装类(使用 CodeDom 可见的 COM),因为某些客户端需要这些来访问来自其他上下文的数据(Excel/VBA等...)。
那么这可能吗?
更新: 尝试 Snoopy 的 RegFree 方法,我使用 CodeDom 将该类构建到 test2.dll 中:
namespace Test
{
public class TestClass
{
private double _d1;
private double _d2;
public double d1 {
get {
return _d1; }
set { _d1 = value; }
}
public double d2 {
get { return _d2; }
set { _d2 = value; }
}
public double sum()
{
return d1 + d2;
}
}
}
我在 VBE 中得到以下信息:
【问题讨论】:
-
它只需要属性,所以没问题。
-
我对COM注册方面感到困惑。我的理解是该属性不会处理这个问题。
-
我假设 ComVisible 属性是由编译器魔法处理的,所以这就是为什么我认为它只适用于无注册 com,但我不是 100% 确定,所以请随时纠正我 :-)