Кроссплатформенный способ убедиться, что какая-то операция когда-либо выполнялась на локальной машине

Я работаю над кросс-платформенной библиотекой .net Standard 2.0 (нацеленной на Windows, iOS, Android).

Есть некоторая операция, которую мне нужно выполнить только один раз на локальном компьютере.

If (!MethodAExecuted)
{
    MethodA();
    MethodAExecuted = true;
}

Что я могу сделать, чтобы добиться такого поведения кросс-платформенным способом?


person InfernumDeus    schedule 23.07.2018    source источник
comment
Зависит от того, как часто вызывается этот метод и как долго этот метод вызывается, информация должна быть доступна. (dict в одноэлементной службе, SQL-сервере, Redis, ... просто без названия несколько вариантов)   -  person Christoph Lütjen    schedule 23.07.2018


Ответы (1)


Единственное, о чем я мог подумать, это иметь конечную точку веб-службы, где вместо:

МетодAExecuted = истина

вы можете вызвать веб-службу, чтобы установить статус, и другую, чтобы определить, был ли когда-либо установлен статус. Это было бы полностью независимо от платформы, поскольку оно было бы основано на открытых стандартах. Реализация на каждой платформе должна будет соблюдать только контракт в WSDL веб-службы.

Примечание: то, как вы справляетесь с такими вещами, как синхронизация, параллелизм и т. д., зависит от вас. Но поскольку вызов веб-службы не зависит от платформы, вы можете адаптировать его для каждой платформы.

person tillerman35    schedule 23.07.2018