Quel est le format du fichier de définition de contexte XML que lira XmlApplicationContext (sFileName)?
-
08-07-2019 - |
Question
Tous les exemples que je peux rechercher en ligne utilisent le mode App.Config pour spécifier la définition de contexte récupérée par
contextToGetSprungObjects = ContextRegistry.GetContext(contextname)
Je veux utiliser
contextToGetSprungObjects = new XmlApplicationContext(sXmlFileName)
(J'appelle dans une DLL (qui nécessite Spring.net) à partir d'un autre exécutable (MsWord), donc la méthode app.config est désactivée). J'ai essayé de me faufiler dans MyDll.dll.config .. n'a pas volé. En utilisant l'approche XmlApplicationContext pour le lire à partir d'un fichier XML spécifié, j'obtiens le message d'erreur suivant
{"Error registering object with name '' defined in 'file [D:\\Work\\Seven\\WordAutomation\\ContentControls\\WordDocument1\\bin\\debug\\MyWPFPlotPopup.dll.config]' : There is no parser registered for namespace ''\r\n<configSections><sectionGroup name=\"spring\"><section name=\"context\" type=\"Spring.Context.Support.ContextHandler, Spring.Core\" /></sectionGroup><section name=\"log4net\" type=\"log4net.Config.Log4NetConfigurationSectionHandler, log4net\" /></configSections>"}
Ce qui me porte à croire que les deux approches ont besoin de leur xml dans une bouteille de forme différente. J'ai cherché haut et bas mais le schéma pour le xml dont on a besoin m'échappe .. tout ce que je peux trouver utilise X.exe.config ou Web.config. Quelqu'un peut-il m'indiquer une définition de contexte XML valide pour Spring.net?
<spring>
<context>
<context name="MyApplication">
<resource uri="file://Resources/MyApplicationContext.xml"/>
</context>
</context>
</spring>
Je pense que ceci est la section pertinente de l'app.config que je veux lire pour Spring.net
La solution
Les documents Spring.NET sont un bon exercice contre la douleur
avez-vous consulté la section d'introduction " Général - conteneurs et objets " des documents de référence? Chapitres Imho 5.2.1 "Métadonnées de configuration" et 5.2.2 "Instanciation du conteneur" assez clairement démontrer ce que vous essayez d’atteindre. Quels étaient vos points de douleur? Nous serions heureux de recevoir vos suggestions d'amélioration!
J'aimerais également vous suggérer de publier des questions pertinentes sur Spring for .NET dans nos forums de la communauté - il est plus probable que vos questions y soient répondues.
acclamations, Erich
Autres conseils
Enfin franchi cet obstacle. XmlApplicationContext ne lit pas le mappage intermédiaire xml dans app.config ... il lit directement le contenu désigné comme étant l'élément de ressource. Il ne lira pas le format app.config - utilisé par la classe ContextRegistry dans Spring.net. Les documents Spring.net sont un bon exercice contre la douleur.
context = new XmlApplicationContext("file://Resources/MyApplicationContext.xml");
où ce XML est de la forme suivante.
<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net">
<object id="Wilma" type="WhatIsSpring.Wilma, WhatIsSpring"/>
<object id="Fred" type="WhatIsSpring.Fred, WhatIsSpring">
<property name="TheDependency" ref="Wilma"/>
</object>
</objects>