Используя представленного участника? - PullRequest
1 голос
/ 12 февраля 2012

Я читал о PostSharp и хочу использовать введение, чтобы добавить участника. Для глупого примера, скажем, я пишу аспект, который вводит

public Guid Id = Guid.NewGuid();

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

public void PrintGuid()
{
     Console.WriteLine(this.Id);
}

Как бы я это сделал? С другой стороны, если это не сработает, могу ли я сделать что-то вроде объявления переменной в классе, а затем использовать ее в аспекте? Таким образом, класс будет иметь

public Guid Id;

А аспект будет делать что-то вроде

this.Id = Guid.NewGuid();

1 Ответ

0 голосов
/ 13 февраля 2012

Здесь вы можете посмотреть, как это сделать

Если вам нужно использовать его во время разработки, то вам, вероятно, не стоит вводить его во время компиляции. Либо измените его, чтобы он был там во время разработки, либо вы можете абстрагировать интерфейс и использовать Post.Cast <> (), чтобы воспользоваться этим

var MyClass = Post.Cast<IMyInterface>(...);

MyClass.MyIntroducedMember = 10;
...