Tôi muốn tạo ra một thuộc tính HandleError
rằng tôi sẽ đưa vào một lớp học như thế này:thuộc tính đó sẽ quấn tất cả các phương pháp trong lớp học với try {} catch
[HandleError]
public class Foo
{
public void Do(){}
...
public void Don(){}
}
và nó sẽ quấn tất cả các phương pháp trong thử nắm bắt, vì vậy tôi tin rằng nó nên được một cái gì đó như thế này:
public class HandleErrorAttribute : Attribute
{
public void Execute()
{
try
{
method.Execute();
}
catch(Exception ex)
{
//log
}
}
}
có thể như vậy?
Với khuôn khổ hiện tại, không có. Nó có thể là có thể với một trong các thư viện AOP mặc dù. http://www.sharpcrafters.com/aop.net – asawyer
Đó không phải là những gì thuộc tính làm. Như @asawyer lưu ý, postsharp có thể cho phép điều này; và trong các phiên bản tương lai, loại điều này có thể là một phần mở rộng nhờ vào trình biên dịch viết lại (aka Roslyn); nhưng tại thời điểm này: không có –
@MarcGravell, bạn có nghĩ rằng điều này sẽ được xây dựng bởi vì Roslyn hay bạn nghĩ chúng tôi sẽ phải xây dựng một dự án nguồn mở cho nó? –