【发布时间】:2011-05-25 22:41:29
【问题描述】:
我有几个 WCF 服务已导入到 .Net4 类库中。创建代理时,将几个声明为 DataContracts 的枚举器导入代理。稍后我通过 COM Interop 公开了几个过程以用作 ActiveX 库,并使用导入的枚举数作为这些过程的参数。
在我的类库的程序中,我可以用[ComVisible(true)]公开,以便通过COM调用它们。但是,将枚举数作为参数的方法,当我使用 regasm.exe 注册时,我得到了错误:
Type library exporter warning processing 'xxxxxx.Method(pEnumerator),yyyyyy'. Warning: Non COM visible value type 'yyyyyy.zzzzzzz.enEnumerator' is being referenced either from the type currently being exported or from one of its base types.
我知道发生这种情况是因为枚举器没有使用 ComVisible 公开,但是如果我输入必要的参数,因为它们在代理中,所以每当我刷新代理时,它们都会被覆盖。反正有这个吗?
我可以在类库中创建自己的枚举器,使用 ComVisible 公开它们,并执行switch 以将导入的枚举器与我创建的枚举器匹配。但我想避免这种情况。
谢谢帮助
【问题讨论】:
标签: .net wcf com-interop class-library