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