В настоящее время у меня Cortana реализована в моем приложении Silverlight. Голосовые команды сохраняются в CortanaCommands.xml, вот код:Как изменить команды Cortana Voice Activation (XML) на C#?
<?xml version="1.0" encoding="utf-8"?>
<VoiceCommands xmlns="http://schemas.microsoft.com/voicecommands/1.1">
<CommandSet xml:lang="en-US">
<CommandPrefix>Dr. Bailey</CommandPrefix>
<Example> Open app to take dictation </Example>
<Command Name="Text">
<Example> Is it going to rain? </Example>
<ListenFor> [create] {dictation} </ListenFor>
<Feedback> "" </Feedback>
<Navigate Target="/Views/CortanaText.xaml" />
</Command>
<PhraseTopic Label="dictation" Scenario="Dictation">
<Subject> Cal 123 </Subject>
</PhraseTopic>
</CommandSet>
</VoiceCommands>"
В этом примере, если пользователь разворачивает Кортанен и говорит, то приложение переходит «Доктор Бейли, он собирается дождь?» к CortanaText.xaml. Это жестко закодировано в XML, и я хочу, чтобы пользователь мог настроить свой командный префикс и свою команду.
Используя 2 текстовых поля, я закодировал в C# строку, содержащую весь XML, но вставляя варианты из текстовых полей, содержащих новый префикс Command и Command. Эта строка называется cortanaXMLstring. Каков наилучший способ перезаписать существующий код в CortanaCommands.xml с помощью новой строки? Я решил, что это будет проще, чем изменение 2 различных областей существующего XML. Я также подумал, что можно удалить CortanaCommands.xml (используя код C#), а затем создать этот XML снова, просто вставив строку, поскольку строка содержит весь текст, необходимый для XML? Или есть ли какие-либо другие предложения о том, как получить эти 2 поля в XML-файле? Это командный префикс и пример команды. Спасибо за любую помощь, которая может быть предоставлена!