Damit jetzt ein Client den Dienst benutzen kann, müsste ich beim Start eine Initialisierung mitgeben. So in etwa:
serviceHost = new ServiceHost(typeof(MyRequest)); serviceHost.Open(); //Proxy gibt es so nicht (serviceHost.Proxy as MyRequest).Init(configuration); //Aufruf der Init-Methode ...
Der ServiceHost ist nicht im Client sondern in einem Windows Dienst. Ein Singleton ist leider nötig, da ich auf eine externe Bibliothek zugreifen muss die etwas zickig reagiert.
OK, dann hab ich den Text anders verstanden: So gib nicht typeof(MyRequest) an, sondern new MyRequest(), also die Instanz und nicht den Typ. Schau dir dabei die Konstruktorüberladungen vom ServiceHost an.
Die externe Bibliothek scheint somit nicht threadsicher zu sein. Kannst du nicht für jeden Zugriff eine Instanz dieser Bibliothek erstellen? Dann wäre es wieder threadsicher und auf Singleton kann verzichtet werden.