C# - 查找 Class 的实例

C# - Finding instance of Class

如何从另一个应用层找到 class 的实例。我必须使用我的 MV(模型视图)从 DAL(数据访问层)刷新一个属性。完成任务的最简单方法是什么。这可能吗?? 我的意思是:

SomeClass someClass = FindInstance<SomeClass>([params]);

感谢您的帮助。

我认为您试图做的是创建一个单例对象。这是最简单的形式。

public class SomeClass
{
    //single instance used everywhere.
    private static SomeClass _instance;

    //private constructor so only the GetInstance() method can create an instance of this object.
    private SomeClass()
    {

    }


    //get single instance
    public static SomeClass GetInstance()
    {
        if (_instance != null) return _instance;
        return _instance = new SomeClass();
    }
}

现在要访问对象的同一实例,只需调用

SomeClass singleton = SomeClass.GetInstance();

如果您想使用更高级的技术,那么您可以考虑使用依赖注入之类的技术,但是这是一个不同的讨论。

编辑:

public class SomeClass
{

    private static SomeClass _instance;


    private SomeClass()
    {

    }
    public static SomeClass GetInstance()
    {
        if (_instance == null)
            throw new Exception("Call SetInstance() with a valid object");
        return _instance;
    }

    public static void SetInstance(SomeClass obj)
    {
        if (obj == null)
            throw new ArgumentNullException(nameof(obj));
        _instance = obj;
    }
}

我解决了我的问题:

SomeClass instance = ServiceLocator.Current.GetInstance<SomeClass>();