Независимый от языка пользовательский инструмент
Я работаю над инструментом DSL, и для этого инструмента существует специальный инструмент генерации кода, который создает выходные файлы. В настоящее время этот инструмент зарегистрирован в C# с помощью атрибута RegistrationAttribute в DslPackage со следующим кодом:
class FileGenerationRegistrationAttribute : RegistrationAttribute
{
private const string CSharpGeneratorsGuid = "{fae04ec1-301f-11d3-bf4b-00c04f79efbc}";
private const string CSharpProjectGuid = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}";
public override void Register( RegistrationAttribute.RegistrationContext context )
{
// register custom generator
key = context.CreateKey( @"Generators\ " + CSharpGeneratorsGuid );
...
key.Close();
// register editor notification
key = context.CreateKey( @"Projects\ " + CSharpProjectGuid + @"\FileExtensions" );
...
key.Close();
}
}
Это работает, но дело в том, что код, сгенерированный инструментом, будет нейтральным по отношению к языку (благодаря использованию CodeDOM). Это не требует, чтобы проект был типа C#. Итак, мой вопрос заключается в следующем: какие GUID я могу использовать вместо продемонстрированного CSharpGeneratorsGuid
а также CSharpProjectGuid
чтобы мой инструмент можно было использовать в любом проекте? (Как и VB, F#, IronPython и др.)
1 ответ
Я искал и искал, но я не нашел ответа, и я действительно начинаю верить, что его нет. Докажите, что я не прав (да, пожалуйста, докажите, что я не прав), и я отмечу ваш ответ как принятый ответ.