Добавление пользовательских ключевых слов в .net для решения в процессе сборки до или после сборки - PullRequest
0 голосов
/ 29 июня 2010

Я ищу способ добавления пользовательских ключевых слов в .net framework, которые предлагают "особые" преимущества перед компилятором или игнорируются компилятором.

Пример Я хотел бы сделать что-то вроде этого

public static factory class Foo<T>
{
     public static create T Create();
}

Я хотел бы добавить событие предварительной компиляции, которое переводит этот код в работающий C #.Я уже рассмотрел несколько вариантов (которые я не могу опубликовать здесь, потому что я ограничен 1 гиперссылкой), ни один из них не делает именно то, что я ищу.У кого-нибудь еще есть предложения?

Ответы [ 3 ]

1 голос
/ 29 июня 2010

Я предлагаю нечто более похожее на это:

[Factory()]
public static class Foo<T>
{
    [Create()]
    public static T Create();
}

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

1 голос
/ 29 июня 2010

Это невозможно сделать с текущей версией C #, если вы не готовы:

  • Создайте свой собственный компилятор C #
  • Создайте свой собственный препроцессор для запуска перед фактическим компилятором.
0 голосов
/ 29 июня 2010

Не могли бы вы обойтись только с помощью аннотаций? Ваш пример предполагает, что вы могли бы, но я понимаю, что это может вводить в заблуждение.

...