2011-12-06 4 views
2

Je construis un service de repos WCF en utilisant VS2010 .net 4.0 et le modèle de service de repos. Je voudrais présenter spring.net - IoC mais je ne suis pas en mesure d'obtenir le printemps initialisé lorsque le InstanceContextMode.Single est défini. Pour tous les autres paramètres, je peux utiliser l'interface IInstanceProvider et introduire un comportement personnalisé.spring.net et WCF Rest Service

Ma question est:

est-il une autre façon que je peux obtenir le printemps initialisé?

+0

S'il vous plaît lire la note 30.2 .: http://springframework.net/doc-latest/reference/html/wcf.html MSDN: Si le InstanceContextMode du service est unique, le système n'appelle pas les méthodes GetInstance ou ReleaseInstance. – Andreas

+0

Merci, pour votre réponse Andreas, déjà au courant .. Je me demandais s'il y avait une autre façon de faire fonctionner le ressort pour tous les InstanceContextMode (s)? Je cherche à créer un ServiceHostFactory personnalisé (remplacez WebServiceHostFactory dans global.asax) et remplace le CreateServiceHost en fournissant un type de proxy Spring du service de repos WCF. – lihnid

+0

Imho vous recherchez Spring.ServiceModel.Activation.WebServiceHostFactory. https://github.com/SpringSource/spring-net/blob/master/src/Spring/Spring.Services/ServiceModel/Activation/WebServiceHostFactory.cs – Andreas

Répondre

0

Désolé je viens de voir les commentaires dans la réponse principale

Si votre seul problème est le nom de la référence, vous pouvez créer votre propre et fixer le paramètre de référence, ou ajouter un dictionnaire où vous définissez des alias dans la config xml et faire une recherche contre cela. Pour autant que je sache, vous ne pouvez pas utiliser Spring lorsque InstanceContextMode est unique; de la doc:

Tout en intégrant « natif » avec WCF ne semble être il y a une « Gotya » qui doit être étudiée plus à l'approche plus naturelle voir s'il y a une solution acceptable pour que cette approche à être viable. Le problème est que si le service est configuré pour être un singleton , par exemple en utilisant [ServiceBehavior (InstanceContextMode = InstanceContextMode.Single)] alors l'invocation du IInstanceProvider est court-circuitée.

La documentation suggère ceci:

Une solution de contournement, ce qui est très attrayante, est d'utiliser le mode instanciation Percall mais mis l' attribut singleton dans la configuration Spring true, cette façon la la même instance est toujours renvoyée.

Plus d'infos ici: http://www.springframework.net/docs/1.2.0-M1/reference/html/wcf.html

Questions connexes