查找到PostSharp。这是一个典型问题的AOP框架,“这种代码模式我每天都在匆匆忙忙地做什么,我该如何实现自动化?”。 你可以用PostSharp这个(例如)简化:
public Class1 DoSomething(Class2 first, string text, decimal number) {
if (null == first) { throw new ArgumentNullException("first"); }
if (string.IsNullOrEmpty(text)) { throw new ArgumentException("Must be not null and longer than 0.", "text") ; }
if (number < 15.7m || number > 76.57m) { throw new OutOfRangeArgumentException("Minimum is 15.7 and maximum 76.57.", "number"); }
return new Class1(first.GetSomething(text), number + text.Lenght);
}
到
public Class1 DoSomething([NotNull]Class2 first, [NotNullOrEmpty]string text, [InRange(15.7, 76.57)]decimal number) {
return new Class1(first.GetSomething(text), number + text.Lenght);
}
但是,这还不是全部! :)