Я использую три службы WCF, одну для мониторинга устройства считывания карт с использованием последовательного порта, который получает данные, когда пользователь проводит карту.Затем данные отправляются в другую службу, которая проверяет данные и вызывает другую службу, чтобы открыть шлюз для пользователя, связанного с этим портом прокрутки.
Поскольку последовательный порт уже открыт и отслеживается первой службой WCF, другая служба можетне получить доступ к порту, чтобы отправить команду, чтобы открыть дверь.Когда я пытаюсь исправить это, создав класс Singleton вокруг объекта порта смахивания, я могу получить тот же объект, но состояние не поддерживается, так как порт говорит, что он не открыт, но фактически он открывается через первый сервис.
Я просто разместил свой портовый класс.Любая идея или предложение, пожалуйста.
public class Port : SerialPort
{
public Port(string port) : base(port)
{
}
public static Port Instance
{
get { return Nested.myPort; }
}
class Nested
{
static Nested() { }
internal static Port swipePort;
public static Port myPort
{
get
{
if (swipePort == null)
swipePort = new Port("COM4");
if (!swipePort.IsOpen)
swipePort.Open();
return swipePort;
}
}
}
}