2013-05-23 4 views
3

Возможно ли, чтобы атрибут, помещенный в свойство, перехватил вызов назначения этому свойству?Перехват присвоения свойств с помощью атрибутов

Пример того, как я буду использовать это, должен сделать так, чтобы свойство строки с этим атрибутом на нем было установлено в string.Empty, когда пользователь назначает null.

Я уверен, что существует много других возможных применений для чего-то подобного, но на данный момент это то, что я ищу.

EDIT:

Например:

class A 
{ 
    [NotNullableString] 
    public string SomeString { get; set; } 
} 

И NotNullableStringAttribute проверит входное значение для set и если оно равно нулю заменить его string.Empty вместо.

+1

сказать, что? ....... –

+0

почему бы не проверить нуль в инкубаторе и установить его на String.Empty – cheedep

+0

или проверить нуль в Get() –

ответ

2

Если вы хотите сделать это, используя атрибуты C#, вам нужно будет использовать ткачество IL.

Самая популярная библиотека PostSharp: http://ayende.com/blog/3640/first-steps-with-post-sharp Экспресс версия бесплатно: http://www.postsharp.net/aspects

+0

is postharp бесплатно для использования? – David

+0

@ David nope. Упоминал это в ответ – basarat

+0

Я искал бесплатный способ сделать это. Если нет, то я могу достичь этого долгий путь. –

0

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

Смежные вопросы