c# - 在 C# 控制台应用程序中设置结构图

标签 c# ioc-container structuremap

我收到这个错误:

StructureMap Exception Code:  202
No Default Instance defined for PluginFamily 

我的设置如下:

Console.WriteLine("Structure Map");
SetupSM sm = new SetupSM();
sm.Setup();

ISomeThing someThing = ObjectFactory.GetInstance<ISomeThing>();
Console.WriteLine("something.HowManyTHings: " + someThing.HowManyThings("asdf"));



 public class SetupSM
    {
        public void Setup()
        {
            var c1 = new Container(config =>
            {
                config.Scan(scan =>
                {
                    scan.TheCallingAssembly();
                    scan.WithDefaultConventions();
                });
            });

            var c2 = new Container(x =>
                                              {
                                                  x.For<ISomeThing>().Use<SomeThingOne>();
                                              });


        }
    }

这是我第一次尝试使用结构图,我错过了什么? 似乎他们主网站上的指南使用旧语法等非常古老。

最佳答案

尝试将您的配置应用于静态 ObjectFactory 而不是您似乎立即丢弃的单独容器..

public class SetupSM
    {
        public void Setup()
        {
            ObjectFactory.Configure(config =>
            { 
                config.Scan(scan =>
                {
                    scan.TheCallingAssembly();
                    scan.WithDefaultConventions();
                });

                config.For<ISomething>().Use<SomeThingOne>();
            });
    }

关于c# - 在 C# 控制台应用程序中设置结构图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6777671/

相关文章:

c# - Windows开发如何快速学习Autofac?

c# - StructureMap ObjectFactory.Reset 内存泄漏?

c# 属性和覆盖行为 asp.net mvc

c# - Java .NET 互操作性

c# - WPF 格式化文本 : Calculate font size to fill available height space

c# - 如何使用 Autofac 使用方法连接事件?

c# - 在 IoC 模式中将连接字符串之类的东西保存在哪里?

interface - 抽象类是否像接口(interface)一样与 StructureMap 一起使用?

c# - Nunit 测试 dll,单独运行通过,一起运行第二个失败

c# - 如何替换 .NET 中字符串的*第一个实例*?