Вставка объекта в отсортированный список является O (зарегистрируйте n), в то время как сортировка списка является O (n, регистрируют N), Который предположил бы, что всегда лучше отсортировать сначала и затем вставить
, Но remeber крупный 'O' только касается масштабирования скорости с количеством объектов, могло бы случиться так, что для Вашего приложения вставка в середине является дорогой (например, если это был вектор), и таким образом добавляя, и сортирование позже могло бы быть лучше.
Я думаю, вы можете сделать это в PostSharp . К сожалению, вам нужно будет указать имя метода в виде строки - в C # нет оператора для преобразования имени метода в MethodInfo
, хотя это предлагалось несколько раз.
Возможно, вам придется переместить атрибут, если вам нужен код для выполнения только после установщика (а не получателя):
public string Name
{
get;
[MethodExecute("Log")] [MethodExecute("Save")] set;
}
(Для простоты здесь используется автоматически реализованное свойство.)
Вы также можете использовать механизм перехвата , предоставляемый контейнером внедрения зависимостей Unity . Рассмотрим в качестве примера реализацию INotifyProperyChanged с перехватом Unity .
На самом деле вы спрашиваете, есть ли в .NET framework какие-либо перехватчики для аспектно-ориентированного программирования (AOP). К сожалению, ответ - нет , не по умолчанию.
Есть много фреймворков, которые позволяют это делать, но большинство требует, чтобы типы, украшенные таким образом, создавались специализированной фабрикой.