草庐IT

my_awesome_func

全部标签

c# - 可以通过 WCF 服务传递 Func<T,bool> 吗?

Func是一个可序列化的类,但是当我尝试将它作为参数通过服务传递时。有人告诉我它“不是已知类型”。我试过解决方案here无济于事。非常感谢... 最佳答案 不,基本上。您也不能传递Expression,因为它与MemberInfo节点对话。最好的选择是谓词的字符串表示。 关于c#-可以通过WCF服务传递Func吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/567316/

c# - 从 BinaryExpression 到 Expression<Func<T, bool>>

假设我有类似的东西Expression>left=x=>x.SomeDateProperty;Expression>right=x=>dateTimeConstant;varbinaryExpression=Expression.GreaterThan(left,right);Expression>predicate=x=>x.SomeDateProperty>dateTimeConstant;1)如何用binaryExpression代替最后一行赋值的右手?varpredicate=x=>binaryExpression;不起作用。2)右边的总是一个常量,不一定是DateTime.N

c# - Func<> 的 List<>,具有通用返回类型的编译错误,但为什么呢?

这个问题有点长,所以请耐心等待。我需要在一组字符串和每个字符串对应的通用方法调用之间创建一个映射。但是,我遇到了一个编译问题,下面进行了解释。在我的场景中,我使用的是Dictionary,但问题同样存在于List.为简单起见,我使用List在下面的示例中。考虑这三个类:publicabstractclassMyBase{/*bodyomitted*/}publicclassMyDerived1:MyBase{/*bodyomitted*/}publicclassMyDerived2:MyBase{/*bodyomitted*/}还有一些其他类中的方法:publicclassTest{p

c# - 将 Func<T> 转换为 Func<object>

我想知道如何通过Func至Func方法参数:publicvoidFoo(Funcp)whereT:class{Foo(p);}publicvoidFoo(Funcp){}奇怪的是,它在NET4.0类库中有效,但在Silverlight4类库中无效。实际上我希望它在Silverlight中工作,并且我有像Func这样的输入参数 最佳答案 这样就可以了:publicvoidFoo(Funcp)whereT:class{Funcf=()=>p();Foo(f);} 关于c#-将Func转换为F

c# - Entity Framework 过滤器 "Expression<Func<T, bool>>"

我正在尝试为EntityFramework列表创建一个过滤方法并更好地理解Expression我有一个这样的测试函数。publicIQueryableFilter(IEnumerablesrc,Expression>pred){returnsrc.AsQueryable().Where(pred);}如果我这样做:context.Table.Filter(e=>e.ID或者这个:context.Table.Filter(e=>e.SubTable.Where(et=>et.ID0&&e.ID一切正常。但是如果我这样做:context.Table.Filter(e=>e.SubTable

c# - 对传递 Expression 与 Func 参数感到困惑

我在理解表达式和函数的工作方式之间的区别时遇到了一些困难。当有人更改方法签名时出现此问题:publicstaticListThingList(FuncaWhere)到publicstaticListThingList(Expression>aWhere)这破坏了我的调用代码。旧的调用代码(有效)如下所示:...objecty=newobject();FuncwhereFunc=(p)=>p==y;things=ThingManager.ThingList(whereFunc);新代码(不起作用)如下所示:...objectx=newobject();Expression>whereEx

c# - Action 和 Func 参数不明确

这段代码怎么可能TaskManager.RunSynchronously(fileMananager.BackupItems,package);导致编译错误Thecallisambiguousbetweenthefollowingmethodsorproperties:'TaskManager.RunSynchronously(System.Action,MyObject)'and'TaskManager.RunSynchronously(System.Func,MyObject)'当Action的签名是publicvoidBackupItems(MyObjectpackage)和“模

c# - 如何将 LambdaExpression 转换为类型化的 Expression<Func<T, T>>

我正在为nHibernate动态构建linq查询。由于依赖关系,我想稍后再转换/检索类型化的表达式,但到目前为止我一直没有成功。这是行不通的(强制转换应该发生在其他地方):varfuncType=typeof(Func).MakeGenericType(entityType,typeof(bool));vartypedExpression=(Func)Expression.Lambda(funcType,itemPredicate,parameter);//Fails这是有效的:vartypedExpression=Expression.Lambda>(itemPredicate,pa

c# - Func<T> 是如何隐式转换为 Expression<Func<T>> 的?

我不明白这里发生了什么:这两行编译:Funcfunc=()=>newobject();Expression>expression=()=>newobject();但这不是:expression=func;LambdaExpression上没有隐式运算符或Expression将委托(delegate)转换为表达式,因此必须发生其他事情才能使分配工作。这是什么? 最佳答案 这不是通常意义上的隐式转换——它是一种编译器技巧。编译器从上下文中检测哪一个是预期的,然后将其编译为委托(delegate)(类中的隐藏方法)或表达式(通过调用Sys

javascript - Grunt wiredep 没有注入(inject) font-awesome

我目前正在从事一个已经开始使用yeoman的项目。出于某种原因,当我运行grunt-wiredep时,除了font-awesome之外,所有依赖项都被正确地注入(inject)到我的index.html中。这是我的bower.json文件:{"name":"watermelon","version":"0.0.0","dependencies":{"angular":"^1.3.0","angular-animate":"^1.3.0","angular-bootstrap":"~0.13.3","angular-cookies":"^1.3.0","angular-google-ma