Można używać typów odsłonięte przez usługę internetową, lub może się okazać, że masz dodać odniesienie internetową tak, aby odpowiednie informacje połączenie zostanie dodane do pliku konfiguracyjnego. Aplikacja WinForm nie odziedziczy ani nie użyje pliku konfiguracyjnego DLL w żaden sposób, o ile nie przygotujesz dla niego jakiegoś fantazyjnego mechanizmu ładującego. Innymi słowy, w DLL po dodaniu odwołania do strony internetowej, jego plik konfiguracyjny dostaje informacje o tym, jak połączyć się z usługą sieciową, ale kiedy używasz DLL w aplikacji, twoja aplikacja potrzebuje tych informacji w swoim własnym pliku konfiguracyjnym, w związku z tym należy dodać odniesienie do strony internetowej, aby wygenerować informacje.
W odniesieniu do korzystania typ odsłoniętą przez odniesienie internetowej, nie jestem pewien, czy to może być problemem, gdy występują. Napotkałem tego rodzaju rzeczy w bibliotekach DLL. Na przykład, SharpMap.dll deklaruje klasę SharpMapData
i WrapperOfSharpMap.dll ma metodę zwaną ProcessData(SharpMapData blah)
Gdybym napisać aplikację WinForm i dodać odwołanie do WrapperOfSharpMap.dll, mam również dodać odwołanie do SharpMap.dll ponieważ aby wywołać ProcessData
muszę utworzyć instancję SharpMapData
, aby przekazać tę funkcję. Innymi słowy, używam typu zadeklarowanego w SharpMap.dll, dlatego potrzebuję odniesienia do niego.
Aby rozwiązać ten problem, twórca WrapperOfSharpMap.dll należy utworzyć klasę WrapperSharpMapData
tak:
class WrapperSharpMapData
{
private SharpMapData hiddenSharpMapData;
//create proprerties to access data elements using standard CLR types or other wrapper types
}
Nie powinieneś dodawać odwołania do usługi do WinForm ... jaki jest błąd, który widzisz? –
System.InvalidOperationException Moja .NET jest po francusku (... westchnienie ...), ale mówi coś w stylu "Nie można znaleźć odwołania do usługi". – dsimard