Разное поведение при первом запуске C# Консольное приложение - PullRequest
0 голосов
/ 11 апреля 2020

Я сделал простое консольное приложение для открытия офисных документов в бесплатной веб-версии office365. Источник: https://github.com/Norrica/OfficeEmulator/blob/master/Program.cs

Он просто перемещает файл в папку OneDrive и запускает браузер по умолчанию со ссылкой в ​​качестве аргумента. Ссылка содержит уникальный CID:

https://onedrive.live.com/sync?ru=https://d.docs.live.net/{CID}/{fileName}}

В настоящее время этот CID жестко задан в источнике, но я хочу, чтобы usert мог установить его один раз при первом запуске моего приложения.

TL; DR: Как добиться другого поведения при первом запуске консольного приложения?

1 Ответ

0 голосов
/ 11 апреля 2020

Если это только для этого простого консольного приложения, вы можете добавить строковое поле в ваш класс и предложить пользователю ввести данные после запуска приложения. Это будет запрашивать у пользователя каждый раз, когда он запускает приложение.

class Program
{
   string _cid;

   static void Main(string[] args)
   {
            ...    
      _cid = Console.ReadLine();
      // you can do some validations for the input here, and ask for another input if it's not valid
            ...
    }
}

Если вы хотите, чтобы пользователь запрашивал * только в первый раз, когда запускает приложение, затем вам нужно будет сохранить эти значения в базе данных или в хранилище данных в памяти, например, redis et c. Но, учитывая, что предоставленное приложение является своего рода упражнением, вы можете сохранить его в config для демонстрации. Затем вы можете найти свое хранилище для идентификатора пользователя, и если для этого идентификатора пользователя есть существующее значение CID, вы будете знать, не запрашивать ли у пользователя ввод снова.

Теперь, если вы хотите знать, если пользователь запускает приложение в первый раз на указанном компьютере c, вам потребуется сохранить дополнительную информацию и выполнить дополнительные проверки ...

...