首页 > 解决方案 > 什么相当于将 Spring.Objects.Factory - Spring.NET 替换为 AutoFac

问题描述

Spring.Objects.Factory:

#region Assembly Spring.Core, Version=2.0.0.40001, Culture=neutral, PublicKeyToken=null
#endregion

using System;
using System.Collections.Generic;
using System.Reflection;

namespace Spring.Objects.Factory
{
    [DefaultMember("Item")]
    public interface IObjectFactory : IDisposable
    {
        object this[string name] { get; }

        bool IsCaseSensitive { get; }

        object ConfigureObject(object target, string name);
        bool ContainsObject(string name);
        T CreateObject<T>(string name, object[] arguments);
        object CreateObject(string name, Type requiredType, object[] arguments);
        IList<string> GetAliases(string name);
        object GetObject(string name, Type requiredType);
        object GetObject(string name, Type requiredType, object[] arguments);
        object GetObject(string name, object[] arguments);
        T GetObject<T>(string name);
        object GetObject(string name);
        T GetObject<T>();
        T GetObject<T>(string name, object[] arguments);
        Type GetType(string name);
        bool IsPrototype(string name);
        bool IsSingleton(string name);
        bool IsTypeMatch(string name, Type targetType);
        bool IsTypeMatch<T>(string name);
    }
}

我的代码:

<object id="MyGridModel" abstract="true" type="[ClassName], [Assembly]" >
        <property name="PageSize" value="100" />
        <property name="ShrinkToFit" value="true" />
        <property name="AutoWidth" value="true" />
    </object>

    <object id="UserGrid" parent="MyGridModel" scope="session">
        <property name="GridId" value="UserGrid" />
        <property name="Height" ref="300" />
    </object>

    <object id="RoleGrid" parent="MyGridModel" scope="session">
        <property name="GridId" value="RoleGrid" />
        <property name="Height" ref="200" />
    </object>

这适用于 Spring.NET 和 MVC。但现在我想用 AutoFac 替换 Spring.NET。

我想将 Spring.Objects.Factory 下面的等效方法放入 AutoFac。

T GetObject();

我打电话给 UserGrid :

string gridId = "UserGrid";

protected virtual GridModel GetGridModel(string gridId)
{
      return ContextContainer.Instance.GetObject<GridModel>(gridId);
}

标签: c#.netautofacspring.net

解决方案


推荐阅读