C# к формату (отступ, выровняйтесь), C# правильно

Скорее всего (это предположение, так как вы не включили в вопрос свою конфигурацию launchd), вы не передаете супервизору аргумент -n, чтобы предотвратить самодемонизацию из конфигурации launchd.

Когда основной PID программы завершается, launchd рассматривает оставшиеся процессы, связанные с сиротами, и очищает их.

Чтобы избежать этого, никогда не настраивать программное обеспечение, работающее в системе наблюдения, для самостоятельного демонизации, если только эта система наблюдения явно не поддерживает отслеживание дочерних элементов и не настроена на это.

6
задан Paul Suart 25 March 2009 в 14:06
поделиться

5 ответов

Подробно остановиться на ответе Cherian:

NArrange позволит Вам делать большое форматирование кода. Это - открытый исходный код, и источник доступен на их сайте, таким образом, Вы могли потенциально интегрироваться и redistbute это с Вашим инструментом.

Необходимо только нуждаться в dll's и просто посмотреть на exe о том, как назвать форматирование. Это также создаст резервное копирование форматированного кода. Это - действительно хороший инструмент, если это соответствует Вашим потребностям.

5
ответ дан 8 December 2019 в 13:49
поделиться

Смотрите на Narrange. Необходимо будет, вероятно, автоматизировать эти вещи как часть сборки.
Не уверенный, если это отвечает всем Вашим требованиям все же.
Заключить в кавычки:

NArrange является программой изящного форматирования кода.NET, которая автоматически организует участников кода и элементы в классах.NET.

6
ответ дан 8 December 2019 в 13:49
поделиться

Можно использовать CodeDOM и CSharpCodeProvider. Это - все в пространствах имен Microsoft. До-диез и Система. CodeDom.

Ее пример свойства:

StringWriter writer = new StringWriter();
CSharpCodeProvider provider = new CSharpCodeProvider();
CodeMemberProperty property = new CodeMemberProperty();
property.Type = new CodeTypeReference(typeof(int));
property.Name = "MeaningOfLifeUniverseAndEverything";
property.GetStatements.Add(new CodeMethodReturnStatement(new CodePrimitiveExpression(42)));
provider.GenerateCodeFromMember(property, writer, null);
Console.WriteLine(writer.GetStringBuilder().ToString());

Этот код генерирует:

private int MeaningOfLifeUniverseAndEverything {
    get {
        return 42;
    }
}

CodeDOM является довольно болтливым способом сгенерировать код. Хорошая вещь состоит в том, что можно генерировать несколько языков. Возможно, можно ли найти Erlang.NET CodeProvider?

Вы смогли делать несколько ярлыков при помощи CodeSnippetExpression.

1
ответ дан 8 December 2019 в 13:49
поделиться

Только если Вы выполняете генератор кода как дополнение VS - каждый разработчик будет иметь различные настройки.

0
ответ дан 8 December 2019 в 13:49
поделиться

Вот то, как сделать это от контекста макроса или дополнения:

var dte = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.8.0");
dte.ExecuteCommand("File.OpenFile", filename);
dte.ExecuteCommand("Edit.FormatDocument", filename);
dte.ActiveDocument.Close(vsSaveChanges.vsSaveChangesYes);

Предупреждение: Как @Greg Hurlman говорит, вывод будет варьироваться в зависимости от текущих опций пользователя.

Править:

к сожалению, Ваш метод требует, чтобы у меня был экземпляр VS, работающего вместе с моим приложением winforms. Можно ли думать о способе создать экземпляр VS из моего приложения (если это даже возможно)?

Я думаю, что могло бы быть возможно сделать из Вашего Win. Приложение форм. Однако необходимо будет установить Visual Studio на машине, выполняющей код.

Попробуйте это:

var dte = (EnvDTE80.DTE2)Microsoft.VisualBasic.Interaction.CreateObject("VisualStudio.DTE.8.0", "");
dte.ExecuteCommand("File.OpenFile", filename);
dte.ExecuteCommand("Edit.FormatDocument", filename);
dte.ActiveDocument.Close(vsSaveChanges.vsSaveChangesYes);

Следует иметь в виду необходимость в ссылках на блок EnvDTE80.dll.

0
ответ дан 8 December 2019 в 13:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: