查找类的实例

本文关键字:实例 查找 | 更新日期: 2023-09-27 18:08:08

如何从另一个应用层找到类的实例?我必须使用我的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>();