我在这样的解决方案中有 3 个项目:
- 参考图书馆的 Xna 游戏项目 (GAME)
- 图书馆项目(图书馆)
- 参考库的 Windows 窗体项目 (WIN)
该项目有多个项目启动(WIN 和 GAME)。
因此,在我的库中,我有一个外观,可以使用单例注入它们之间的依赖关系,以提供一种统一的方式来使用插入串行连接器的设备。
这就是我使用单例的原因......因为我不能有 2 个连接到同一个端口。
在我的其他 2 个库(WIN 和 GAME)中,我通过这个外观使用导航器。但结果总是 2 次尝试实例化串行端口,所以第二次总是失败!..
调试它,在该行中添加一个断点:
private static readonly LogicalFaccade _instance = new LogicalFaccade();
我请求了 2 个不同的调用...我从每个项目(获胜和游戏)中获取一个。
如何在项目之间共享唯一实例?
我的代码有问题吗?...
public class LogicalFaccade
{
private static readonly object thredLock = new Object();
private static readonly LogicalFaccade _instance = new LogicalFaccade();
public static LogicalFaccade Instance
{
get
{
return _instance;
}
}
private INavigator _navigator;
public INavigator Navigator
{
get
{
lock (thredLock)
{
if (_navigator == null)
{
_navigator = new SerialNavigator("COM4", 19200, 8);
}
return _navigator;
}
}
}
}