小编Jas*_*rez的帖子

使用Javascript将XML转换为JSON(并返回)

您如何从XML转换为JSON然后再转换回XML?

以下工具运行良好,但不完全一致:

有没有人遇到过这种情况?

javascript xml jquery json format-conversion

137
推荐指数
6
解决办法
33万
查看次数

在LINQ to Entities(EF4.1)中返回具有类型约束的泛型的输入类型

我有一个简单的扩展方法,用于按标签过滤LINQ IQueryable.我正在使用LINQ to Entities,接口为:

public interface ITaggable
{
    ICollection<Tag> Tags { get; } 
}
Run Code Online (Sandbox Code Playgroud)

以下不起作用,返回IQueryable<ITaggable>而不是IQueryable<T>:

public static IQueryable<T> WhereTagged<T>(this IQueryable<T> set, string tag) where T:ITaggable
    {
        return set.Where(s=>s.Tags.Any(t=>t.Name.ToLower() == tag.ToLower()));
    }
Run Code Online (Sandbox Code Playgroud)

这导致LINQ to Entities强制转换异常:

"无法将类型'ReleaseGateway.Models.Product'转换为'ReleaseGateway.Models.ITaggable'.LINQ to Entities仅支持转换实体数据模型基元类型." (System.NotSupportedException)捕获到System.NotSupportedException:"无法将类型'Project.Models.Product'强制转换为'Project.Models.ITaggable'.LINQ to Entities仅支持转换实体数据模型基元类型."

它没有像这样的约束,但我必须在我的应用程序代码中显式声明类型T:

public static IQueryable<T> WhereTagged<T>(this IQueryable<ITaggable> set, string tag)
{
    return set.Where(s=>s.Tags.Any(t=>t.Name.ToLower() == tag.ToLower())).Cast<T>();
}
Run Code Online (Sandbox Code Playgroud)

问题:为什么类型约束会转换返回类型?我可以重写这个以利用扩展方法调用者推断类型吗?

c# linq generics linq-to-entities

10
推荐指数
2
解决办法
1459
查看次数

JavaScript支持部分功能应用吗?

阅读关于First-Class函数的维基百科文章,有一个很好的语言支持表,用于函数式编程的各个方面:http://en.wikipedia.org/wiki/First-class_function#Language_support

JavaScript被列为没有部分功能应用程序.但是,有一些技术可用于创建一个函数,该函数返回一个函数,该函数具有一些存储在闭包中的参数,即:

var add = function(a, b){
    return a + b;
},
apply = function(fn, a){
    return function(b){ 
        return fn(a, b); 
    }
},
addFive = apply(add, 5);

console.log(addFive(2)); // prints 7
Run Code Online (Sandbox Code Playgroud)

这不是部分功能应用吗?如果没有,有人可以提供另一种语言的部分功能应用的例子,并解释它是如何不同的?

谢谢!

javascript functional-programming

8
推荐指数
3
解决办法
1820
查看次数

返回IList <IList <T >>

我有一个构建列表列表的方法.我想让返回类型使用通用的IList <>接口来减少与下游的具体List <>类型的耦合.但是,编译器正在努力进行类型转换.

public IList<IList<T>> Foo<T>()
    {
        return new List<List<T>>();
    } 
Run Code Online (Sandbox Code Playgroud)

为什么这在以下情况下会失败:

public IList<T> Foo<T>()
    {
        return new List<T>();
    } 
Run Code Online (Sandbox Code Playgroud)

这个烂摊子最优雅的方式是什么?

c# generics ilist interface

6
推荐指数
1
解决办法
6184
查看次数

TypeScript:为什么这不是类型错误?

我试图理解TypeScript中工作类型推断的程度.在下面的代码示例中,为什么foo实现baz.esplode有效?我的理解是一个空方法匹配void.

interface bar {
    horace: number;
}

interface baz {
    esplode: (string, number) => bool;
}

interface bazzer extends bar, baz { }

var foo: bazzer = {
    horace: 12,
    esplode: function () { }
}

var x = foo.esplode('crackers', 2);
Run Code Online (Sandbox Code Playgroud)

谢谢!

typescript

6
推荐指数
1
解决办法
585
查看次数

节点 console.log 行为和 windows stdout

在 Windows 中尝试从 node.js 脚本重定向输出时,我注意到了奇怪的行为。此行为的最小可重现示例如下:

从 Windows 控制台 (cmd.exe):

c:\> node -e console.log('hello')
hello
Run Code Online (Sandbox Code Playgroud)

来自 Powershell:

PS C:\> node -e console.log('hello')
PS C:\> 
Run Code Online (Sandbox Code Playgroud)

也就是说,它退出而不向控制台写入任何内容。

这是一个问题,因为当我尝试将输出重定向到文件时,没有写入任何内容,例如

node -e console.log(123) > temp.txt
Run Code Online (Sandbox Code Playgroud)

正在创建一个名为 temp.txt 的空文件。

是否有关于节点如何将 console.out 写入 stdio 的信息?

windows powershell node.js

2
推荐指数
1
解决办法
4055
查看次数