Возможно, вы используете типы, предоставляемые веб-службой, или вам может понадобиться добавить веб-ссылку, чтобы в файл конфигурации была добавлена соответствующая информация о соединении. Приложение winform никоим образом не наследует и не использует файл конфигурации DLL, если вы не подготовите для него какой-нибудь причудливый механизм загрузки. Другими словами, в DLL, когда вы добавляете веб-ссылку, ее конфигурационный файл получает информацию о том, как подключиться к веб-службе, но когда вы затем используете DLL в приложении, ваша прикладная программа нуждается в этой информации в своем собственном файле конфигурации, таким образом, вы должны добавить веб-ссылку, чтобы информация генерировалась.
Что касается использования типа, предоставляемого веб-ссылкой, я не уверен, что это может быть проблемой, с которой вы столкнулись. Я сталкивался с такими вещами в DLL. Например, SharpMap.dll объявляет класс SharpMapData
, а WrapperOfSharpMap.dll имеет метод с именем ProcessData(SharpMapData blah)
Если я пишу приложение WinForm и добавляю ссылку на WrapperOfSharpMap.dll, я также должен добавить ссылку на SharpMap.dll, потому что для вызова ProcessData
мне нужно создать экземпляр SharpMapData
для передачи в функцию. Другими словами, я использую тип, объявленный в SharpMap.dll, поэтому мне нужна ссылка на него.
Чтобы решить эту проблему, создатель WrapperOfSharpMap.dll должен создать класс WrapperSharpMapData
следующим образом:
class WrapperSharpMapData
{
private SharpMapData hiddenSharpMapData;
//create proprerties to access data elements using standard CLR types or other wrapper types
}