【发布时间】:2014-07-04 14:42:04
【问题描述】:
我在该主题上找到了this article,并尝试了以下方法:
public class FailerAttr : Attribute {
public FailerAttr(string s) {
throw new Exception("I should definitely fail!");
}
}
在单元测试项目中,我有以下内容:
using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestClass]
public class Test {
[TestMethod]
public void GoFail() {
// Make sure attribute will get initialized
new Failer();
}
private class Failer {
[FailerAttr("")]
public int Prop { get; set; }
}
}
当我运行测试时,它成功了。所以,问题是:
- 为什么它没有失败?
- 从属性中抛出异常真的是个坏主意吗?因为我认为我需要这样做。
一些环境信息(以防万一):
- 单元测试通过 ReSharper 的单元测试运行器 (R# v8.2.0.2160) 运行
- Visual Studio v11.0.61030.0
【问题讨论】:
-
可以用反射获取属性吗?
-
@KarelFrajtak 我不确定,我还没试过。将在一分钟内尝试
-
您的评论
// Make sure attribute will get initialized是错误的。只有在检查属性时才会构造它(通常通过反射)。 -
@Bun 是的,你是对的。我想我没有很好地理解属性的概念。
标签: c# exception custom-attributes