警告:类型库导出器遇到的类型派生自泛型类,并且未标记为[ClassInterface(ClassInterfaceType.None)]

时间:2015-02-19 16:25:59

标签: c# com wsdl com-interop visual-foxpro

我正在创建一个程序套件来连接远程服务器并通过WSDL发送一些信息,这是成功的并且正常工作,但我被命令将我的所有程序移植到DLL中,我必须启用COM互操作并制作一些返回,我的大多数程序都运行良好,直到我在我的一个程序中发现这个错误,使用两个由WSDL编写的代理类,我花了整整一周时间阅读网页详细信息,但我无法理解如何修复它,这是错误

Warning 1   Type library exporter warning processing 'Tarea.CrSeedService.CrSeedClient, Tarea'. Warning: Type library exporter encountered a type that derives from a generic class and is not marked as [ClassInterface(ClassInterfaceType.None)]. Class interfaces cannot be exposed for such types. Consider marking the type with [ClassInterface(ClassInterfaceType.None)] and exposing an explicit interface as the default interface to COM using the ComDefaultInterface attribute. Tarea    

这是获取错误的代理类之一

http://pastebin.com/y1zFfzER 这是服务参考

的reference.cs文件

http://pastebin.com/vJuFZqsd

inb4有些人报告此问题是重复的我已经Is it possible to implement a COM interface with a .NET generics class? 但仍然没有得到它

如果你看到我已经在代理cs文件的所有类定义中添加了pastebin,那么

[ClassInterface(ClassInterfaceType.None)]
[ComSourceInterfaces(typeof(Procesos.Iclass1))]    

其中

  [ComVisible(true)]
    public interface  Iclass1
    {
    string Ejecucion(string cn, string speed);
    }

其中assemblyinfo.cs

[assembly: ComVisible(true)]

我该怎么办? 我做错了什么?

我会很感激一些指导,VS2013无法准确指导我在哪里出错 虽然它手动说出它的“CrSeedService.CrSeedClient”,但我已经添加了定义并仍然输出错误。

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[ClassInterface(ClassInterfaceType.None)]
[ComSourceInterfaces(typeof(Procesos.Iclass1))]
public partial class CrSeedClient :        System.ServiceModel.ClientBase<Tarea.CrSeedService.CrSeed>,   Tarea.CrSeedService.CrSeed
{
blah
}

此致

1 个答案:

答案 0 :(得分:1)

我在我的解决方案资源管理器中找不到文件reference.cs,但我可以通过搜索功能进入它(搜索“类CrSeedClient”)

http://puu.sh/g3Yv8/3e8f11c975.png

所以我添加了缺失的行,现在它正常工作。

[ClassInterface(ClassInterfaceType.None)]
[ComSourceInterfaces(typeof(Procesos.Iclass1))]
public partial class CrSeedClient

或者,您可以编辑手动查找文件的参考文件

http://puu.sh/g3YzU/8523948580.png

也许这是我的错,称之为菜鸟错误,我不确定