Si può utilizzare tipi esposti dal servizio web, o può essere che si stanno avendo per aggiungere il riferimento web in modo che si aggiunge le informazioni di connessione appropriata per il file di configurazione. Un'applicazione winform non erediterà o userà il file di configurazione di una DLL in alcun modo, a meno che non si debba creare un meccanismo di caricamento di fantasia per questo. In altre parole, nella DLL quando si aggiunge un riferimento Web, il file di configurazione ottiene informazioni su come connettersi al servizio Web, ma quando si utilizza la DLL in un'applicazione, l'applicazione richiede tali informazioni nel proprio file di configurazione, quindi è necessario aggiungere un riferimento Web in modo che le informazioni vengano generate.
Per quanto riguarda utilizzando un tipo esposto con il riferimento web, non sono sicuro se questo potrebbe essere un problema si è verificato. Ho incontrato questo tipo di cose nelle DLL. Ad esempio, SharpMap.dll dichiara una classe SharpMapData
, e WrapperOfSharpMap.dll ha un metodo chiamato ProcessData(SharpMapData blah)
Se scrivo un'applicazione WinForm e aggiungere un riferimento a WrapperOfSharpMap.dll, devo anche aggiungere un riferimento a SharpMap.dll perché per chiamare ProcessData
devo creare un'istanza SharpMapData
da passare alla funzione. In altre parole, sto usando un tipo dichiarato in SharpMap.dll, quindi ho bisogno di un riferimento ad esso.
Per risolvere questo problema, il creatore di WrapperOfSharpMap.dll deve creare una classe WrapperSharpMapData
in questo modo:
class WrapperSharpMapData
{
private SharpMapData hiddenSharpMapData;
//create proprerties to access data elements using standard CLR types or other wrapper types
}
Non dovrebbe essere necessario aggiungere il riferimento al servizio alla WinForm ... che cosa è l'errore che state vedendo? –
System.InvalidOperationException My .NET è in francese (... sigh ...) ma dice qualcosa come "Impossibile trovare il riferimento del servizio". – dsimard