Я делал программный пакет для подключения к удаленному серверу и отправлял некоторую информацию через WSDL, это был успешным и работал правильно, но мне было приказано перенести все мои программы в DLL, мне пришлось включить COM-взаимодействие и сделать некоторые возвращения, большинство моих программ прошли нормально, пока я не нашел эту ошибку в одной из моих программ, которые используют два прокси-сервера классы, сделанные из WSDL, я должен провести целую неделю чтения на веб-детали, но я не могу понять, как это исправить, это ошибкаПредупреждение: экспортер библиотеки типов столкнулся с типом, который генерируется из общего класса и не отмечен как [ClassInterface (ClassInterfaceType.None)]
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 файл службы Reference
inb4 некоторые люди сообщают этот вопрос, как дублированный я Is it possible to implement a COM interface with a .NET generics class? прочитанные, но до сих пор не получили его
если вы видите, что pastebin я добавил уже во всех определениях классов в файле прокси-сервера cs
[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
}
С уважением
я не вижу проблема. Редактирование автоматически сгенерированного кода, конечно, опасно, вы потеряете все свои изменения, когда он будет сгенерирован. Возможно, это и произошло. Вы также должны быть обеспокоены тем, что вы открываете * ничего *, реализация класса скрыта, но вы также не открываете интерфейс. Код клиента должен использовать позднюю привязку для использования этого класса. –
Мне сложно объяснить, как и кодер новичка, но основная программа вызывает метод внутри другого файла, который вызывает другой метод в другом файле, возможно, не потому, что он раскрывается в загруженных файлах, в любом случае, я не могу найти файл reference.cs в своем обозревателе решений, но я могу войти в него через функцию поиска. Я добавил недостающие строки, и теперь он работает исправно, мои извинения – Glas