Je viens de mettre à jour la dernière version de structemap dll et maintenant mon site ne fonctionne plus au runtime en raison de méthodes obsolètes dans structuremap, donc j'essaye de mettre à jour mon code bootstrapper.Syntaxe du structuremap dans la version 2.5.4
Dans ma classe bootstrapper j'ai réécrite à:
public class Bootstrapper
{
public static void ConfigureStructureMap()
{
ObjectFactory.Initialize(InitializeStructureMap);
}
private static void InitializeStructureMap(IInitializationExpression x)
{
x.AddRegistry(new DatabaseServiceRegistry());
x.For<IArticleService>().Use<ArticleService>();
x.For<IArticleRepository>().Use<SqlArticleRepository>();
}
}
J'ai ajouté la ligne de Registre que j'utilise LINQ to SQL qui est dans un projet séparé.
Ceci est le code qui a travaillé dans l'ancienne version de StructureMap:
public class DatabaseServiceRegistry : Registry
{
public override void ConfigureStructureMap()
{
ForRequestedType<Database>()
.TheDefaultIs(() => new Database(Settings.Default.server))
.CacheBy(InstanceScope.Hybrid);
}
Je pense que je dois réécrire quelque chose comme ça?
public void ConfigureStructureMap()
{
ObjectFactory.Configure(x =>
{
For<Database>().Use(new Database(Settings.Default.server));
});
}
Cette compile mais je reçois une erreur d'exécution de:
StructureMap Code d'exception: 202 Aucune instance par défaut défini pour PluginFamily MyProject.Data.SqlRepository.Database
Qu'est-ce que je fais mal ? Je trouve qu'il est difficile de trouver la documentation qui se rapporte à la dernière syntaxe et non référencement méthodes dépréciées :(
Merci qui l'a fixé, il pourrait vraiment faire avec plus de documentation! : D – KevinUK
Je suis d'accord que les fonctionnalités 2.5.4 ne sont pas encore bien documentées. Jeremy le sait et a mentionné sur Twitter que c'est son prochain objectif. – KevM
Oups j'ai menti il en a effectivement parlé sur le groupe Google de StructureMap. http://groups.google.com/group/structuremap-users/browse_thread/thread/ac934bc9d758b796/e01cf7c7c253ea81?lnk=gst&q=2.5.5#e01cf7c7c253ea81 – KevM