在服务堆栈中自动装配时未调用构造函数

时间:2014-03-10 00:44:07

标签: c# servicestack autowired

我正在使用服务堆栈框架在c#中编写服务。我有这个类InMemoryFileSystem(https://gist.github.com/elixir24/9457433)我试图自动连接。

以下是班级的相关部分

公共类InMemoryFileSystem {

    public Dictionary<string, UserFileSystem> clientToFileSystemMap {get;set;}

    public DateTime lastcheckpoint { get; set; }

    private static readonly log4net.ILog Logger = log4net.LogManager.GetLogger(typeof(InMemoryFileSystem));

    public InMemoryFileSystem ()
    {
        clientToFileSystemMap = new Dictionary<string, UserFileSystem>();
        UserFileSystem filesystem = new UserFileSystem();
        filesystem.metadata = new UserMetaData("piyush", "password", 1);
        UserFile file = new UserFile("/x.txt","piyush");
        file.filecontent = Utils.getByteArrayFromString("Filecontent");
        filesystem.filemap.Add("/x.txt", file);
        this.clientToFileSystemMap.Add("piyush", filesystem);
    }
   } 

InMemoryFileSytem类的对象正在自动连接,但我在其构造函数中初始化的数据成员仍为NULL。我怀疑它的默认构造函数可能仍然被调用。

以下是我使用自动布线的代码 - https://gist.github.com/elixir24/9457490

        public class AppHost : AppHostBase
        {   
            public AppHost() : base("Hello Web Services",typeof(CloudFileService).Assembly) { }

            public override void Configure(Funq.Container container){
                Plugins.Add(new RequestLogsFeature());
                this.Config.DefaultContentType = "Json";    
                container.RegisterAutoWired<InMemoryFileSystem>();
            }
         }

有人知道可能导致这种情况的原因吗?

0 个答案:

没有答案