小编Ken*_*Ken的帖子

包装IEnumerable并捕获异常

我有一堆可以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)

c# ienumerable exception wrapper

11
推荐指数
3
解决办法
5911
查看次数

CCNet API,docs?

我想查询我的CCNet服务器以找出构建的状态.我听说有一种(ReST?)API的谣言,但我似乎无法找到它的任何文档.

是否有任何文档,或者我是否需要下载CCNet源代码并开始阅读?

编辑:我找到了端点/XmlStatusReport.aspx,它提供了所有项目的XML概述.但是,任何文件夹中的相同文件名都会给出完全相同的响应,所以我担心这可能是唯一的API.

api cruisecontrol.net ccnet-config

8
推荐指数
1
解决办法
1801
查看次数

类装饰器声明静态成员(例如,对于log4net)?

我正在使用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,而不是半途而废.不幸的是,使用不同的语言不是这个项目的选择.

c# decorator static-members

5
推荐指数
2
解决办法
1516
查看次数

(P)SFTP的dir/ls标准是什么格式?

我正在整理一些东西,通过SFTP下载一些文件.我正在使用PuTTY的psftp.exe命令.

当我做了dir/ ls在PSFTP,是输出的格式规范,或者通过SFTP或PSFTP本身?或者它只是服务器发送响应的任何自由格式文本?

我问,因为我相信FTP(回来的时候!),它根本没有标准化,我只有一个SFTP服务器在这里进行测试.

directory sftp putty directory-listing

5
推荐指数
1
解决办法
1404
查看次数

Java 6是否包含可以运行javax.script(Rhino JS)文件的程序?

我发现Java 6包含Rhino JS(除了一个或两个小块),as javax.script.太酷了!

Java 6安装(JRE或JDK)是否包含二进制文件,我可以简单地指向要运行的.js文件?(我认为能够为其他人提供源代码来阅读和运行,无需编译,并且只需要安装Java就好了.)或者我是否必须在文档中构建小的8行程序

javascript java rhino jdk1.6

3
推荐指数
1
解决办法
398
查看次数