Фрагмент кода для создания конструктора в VS2010 Express

#c# #visual-studio #code-snippets

#c# #visual-studio #фрагменты кода

Вопрос:

Есть ли какой-либо готовый к использованию фрагмент кода в версии VS 2010 Express edition (для C #) для создания конструктора с параметрами из выбранных свойств?

Когда я создаю новый класс и я написал следующий код:

 public class FileDetails
{
    public int ID { get; set; }
    public string FileName { get; set; }
    public string FilePath { get; set; }
    public DateTime LastWriteTime { get; set; }
    public FileStatus LastFileStatus { get; set; }
    public NotifyIfFileNotExists NotifyIfFileNotExists { get; set; }
    public string RecepientsEmailList { get; set; }
    public string AdminEmailList { get; set; }

    public FileDetails()
    {
    }
}
  

Я хотел бы выбрать мышью все общедоступные свойства (или поместить некоторый фрагмент кода), которые создают для меня следующий коструктор:

 public FileDetails(int id, string fileName, string filePath, DateTime lastWriteTime, FileStatus lastFileStatus, NotifyIfFileNotExists notifyIfFileNotExists, string recepientsEmailList, string adminEmailList)
{
    this.ID = id;
    this.FileName = fileName;
    this.FilePath = filePath;
    this.LastWriteTime = lastWriteTime;
    this.LastFileStatus = LastFileStatus;
    this.NotifyIfFileNotExists = notifyIfFileNotExists;
    this.RecepientsEmailList = recepientsEmailList;
    this.AdminEmailList = adminEmailList;
}
  

Вопрос: есть ли какое-либо готовое решение для этого или, если нет, есть ли у кого-нибудь идея или готовый код, как этого добиться?

С наилучшими пожеланиями,
Марчин

Комментарии:

1. Вы заглядывали в ReSharper?

2. @Ramhound, это то, что я бы тоже рекомендовал. Но, учитывая, что он использует Express edition, я сомневаюсь, что у него есть на это деньги. Работает ли Resharper вообще с Express edition?

3. Любая версия Visual Studio Express не поддерживает дополнения, поскольку это невозможно сделать с помощью фрагмента, его выбор ограничен, в основном, использованием другого редактора.

4. AFAIK ReSharper доступен в качестве пробной версии, и стоимость лицензии слишком велика для моей компании (к сожалению… Я должен использовать Express edition по определенной причине). Более того, пока мне нужна только эта, конкретная функциональность.

5. @mj82, ты говоришь это сейчас. Но если бы вы действительно использовали его в течение некоторого времени, вы бы сказали, что вам нужно много других функций. Я совершенно уверен, что инвестиции в R # были бы действительно финансово выгодны для вашей компании.

Ответ №1:

ReSharper — это то, что вы ищете. Но бесплатной версии нет. Но из .NET 3.5 вы можете инициализировать свойства, не имея явного аргумента для каждого из них.

Ответ №2:

Я не верю, что фрагменты могут помочь вам с этим. Вам нужно было бы иметь возможность анализировать типы свойств для генерации конструкторов, плюс нужно было бы иметь возможность конвертировать в camel case .. фрагменты в основном представляют собой простую замену.

Комментарии:

1. Корпус Camel является второстепенной проблемой, я был бы рад, если бы он повторял свойства 1: 1

Ответ №3:

Что ж… Я думаю, что лучшим решением может быть использование какого-нибудь скрипта. Затем вы могли бы запустить его либо из командной строки, либо, используя отдельный текстовый редактор с поддержкой сценариев, скопировать / вставить класс во второй редактор, запустить скрипт, который генерирует конструктор, скопировать / вставить конструктор обратно в VS Express.

Скажем, Notepad с плагином python script?