我正在创建一个程序套件来连接远程服务器并通过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文件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
}
此致
答案 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
也许这是我的错,称之为菜鸟错误,我不确定