我有一堆可以Process()对象的类,并返回自己的对象:
public override IEnumerable<T> Process(IEnumerable<T> incoming) { ... }
Run Code Online (Sandbox Code Playgroud)
我想编写一个可以包装其中一个处理器的处理器类,并记录包装Process()方法可能抛出的任何未捕获的异常.我的第一个想法是这样的:
public override IEnumerable<T> Process(IEnumerable<T> incoming) {
try {
foreach (var x in this.processor.Process(incoming)) {
yield return x;
}
} catch (Exception e) {
WriteToLog(e);
throw;
}
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为CS1626:不能在带有catch子句的try块的主体中产生值.
所以我想写一些概念上等同但编译的东西.:-)我有这个:
public override IEnumerable<T> Process(IEnumerable<T> incoming) {
IEnumerator<T> walker;
try {
walker = this.processor.Process(incoming).GetEnumerator();
} catch (Exception e) {
WriteToLog(e);
throw;
}
while (true) {
T value;
try {
if (!walker.MoveNext()) {
break;
}
value = …Run Code Online (Sandbox Code Playgroud) 我想查询我的CCNet服务器以找出构建的状态.我听说有一种(ReST?)API的谣言,但我似乎无法找到它的任何文档.
是否有任何文档,或者我是否需要下载CCNet源代码并开始阅读?
编辑:我找到了端点/XmlStatusReport.aspx,它提供了所有项目的XML概述.但是,任何文件夹中的相同文件名都会给出完全相同的响应,所以我担心这可能是唯一的API.
我正在使用log4net,我们的代码中有很多这样的东西:
public class Foo {
private static readonly ILog log = LogManager.GetLogger(typeof(Foo));
....
}
Run Code Online (Sandbox Code Playgroud)
一个缺点是,这意味着我们将这个10字的部分粘贴在一起,并且偶尔会有人忘记更改类名.该log4net的常见问题也提到了这个另一种可能性,这更加详细:
public class Foo {
private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
...
}
Run Code Online (Sandbox Code Playgroud)
是否可以编写装饰器来定义它?我真的想简单地说:
[LogMe] // or perhaps: [LogMe("log")]
public class Foo {
...
}
Run Code Online (Sandbox Code Playgroud)
我在其他语言中做过类似的事情,但从来没有像C#这样的静态编译语言.我可以从装饰器定义类成员吗?
编辑:嘿.我是Lisp程序员.我很欣赏切换语言的建议,但实际上,如果我要切换语言以获得更好的元编程功能,我会一直到Lisp,而不是半途而废.不幸的是,使用不同的语言不是这个项目的选择.
我正在整理一些东西,通过SFTP下载一些文件.我正在使用PuTTY的psftp.exe命令.
当我做了dir/ ls在PSFTP,是输出的格式规范,或者通过SFTP或PSFTP本身?或者它只是服务器发送响应的任何自由格式文本?
我问,因为我相信FTP(回来的时候!),它根本没有标准化,我只有一个SFTP服务器在这里进行测试.
我发现Java 6包含Rhino JS(除了一个或两个小块),as javax.script.太酷了!
Java 6安装(JRE或JDK)是否包含二进制文件,我可以简单地指向要运行的.js文件?(我认为能够为其他人提供源代码来阅读和运行,无需编译,并且只需要安装Java就好了.)或者我是否必须在文档中构建小的8行程序?
c# ×2
api ×1
ccnet-config ×1
decorator ×1
directory ×1
exception ×1
ienumerable ×1
java ×1
javascript ×1
jdk1.6 ×1
putty ×1
rhino ×1
sftp ×1
wrapper ×1