小编Dan*_*mov的帖子

是否有一个特殊的原因LinqKit的扩展器无法从字段中获取表达式?

我正在使用LinqKit库,它允许动态组合表达式.

这是编写Entity Framewok数据访问层的纯粹幸福,因为可以选择重复使用和组合多个表达式,这样就可以实现可读和高效的代码.

请考虑以下代码:

private static readonly Expression<Func<Message, int, MessageView>> _selectMessageViewExpr =
    ( Message msg, int requestingUserId ) =>
        new MessageView
        {
            MessageID = msg.ID,
            RequestingUserID = requestingUserId,
            Body = ( msg.RootMessage == null ) ? msg.Body : msg.RootMessage.Body,
            Title = ( ( msg.RootMessage == null ) ? msg.Title : msg.RootMessage.Title ) ?? string.Empty
        };
Run Code Online (Sandbox Code Playgroud)

我们声明了一个投射Message到的表达式MessageView(为了清楚起见,我删除了细节).

现在,数据访问代码可以使用此表达式来获取单个消息:

var query = CompiledQueryCache.Instance.GetCompiledQuery(
    "GetMessageView",
    () => CompiledQuery.Compile(
        _getMessagesExpr
            .Select( msg => _selectMessageViewExpr.Invoke( msg, userId ) ) …
Run Code Online (Sandbox Code Playgroud)

c# lambda closures expression-trees linqkit

26
推荐指数
2
解决办法
4463
查看次数

C#编译器错误?用于Expression中的只写属性的对象初始化程序语法使csc崩溃

您可能会认为这是一个错误报告,但是我很好奇我是否在这里非常错误,或者是否有来自Eric或Microsoft的其他人的解释.

更新

现在,这是作为 Microsoft Connect上的错误发布的.

描述

考虑以下课程:

class A 
{
    public object B {
        set { }
    }
}
Run Code Online (Sandbox Code Playgroud)

这里A.B是一个只写但其他方面很好的属性.
现在,想象一下我们在表达式中分配它:

Expression<Func<A>> expr = 
    () => new A {
        B = new object { }
    };
Run Code Online (Sandbox Code Playgroud)

此代码使C#编译器(3.5 .30729.4926和4.0 .30319.1)吐出

内部编译器错误(地址013E213F处的0xc0000005):可能的罪魁祸首是"BIND".

和崩溃.

但是,{ }使用构造函数(( ))替换对象初始化程序语法()就可以了.

完整的复制代码:

using System;
using System.Linq.Expressions;

class Test {
    public static void Main()
    {
        Expression<Func<A>> expr = 
            () => new …
Run Code Online (Sandbox Code Playgroud)

c# compiler-construction expression-trees writeonly compiler-bug

26
推荐指数
1
解决办法
891
查看次数

如何用CSS包装内联块中的行?

我有一个简单的HTML结构(jsfiddle):

<li>
    <div class="buttons">
        <a href="done"><img src="done.png"></a>
    </div>
    <div class="owners">
        ???? ??????? ? ???? ????????
    </div>
    <div class="text">
        ?????-???? ?????-???? ?????-???? ?????-????
    </div>
</li>
Run Code Online (Sandbox Code Playgroud)

buttons,ownerstextdisplay: inline-block.

text相当小时,这看起来很好:

在此输入图像描述

但是,随着文本的增长,inline-block元素会延伸并最终落在该行上:

在此输入图像描述

这很难看,我想避免这种情况.
我想要实现的是:

在此输入图像描述

当文本太大而无法放入元素内部时,我希望它被行包裹.
我尝试设置float: left元素,但无法使它工作.

使用HTML和CSS(没有表格)执行此操作的正确方法是什么?

html css css-float

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

我可以在没有Redux Thunk中间件的情况下发送多个动作吗?

我读到Redux Thunk是管理异步操作/请求的可靠方法.没有太多关于通过其他行动调度行动的事情.

如何调度同步动作?我不确定thunk方法的性能问题,但是我可以在其他动作创建者中调度动作而不在其中定义函数吗?

在我看来,使用redux thunk对于这种需求是不必要的.

javascript redux redux-thunk

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

我可以从JavaScript中的绑定函数获取未绑定的函数吗?

我正在考虑使用currying和其他技术Function.prototype.bind.在某些情况下
改变功能范围(即this值)似乎非常有用.

但是,bind一旦你这样做,你似乎无法改变范围:

function f = obj.method.bind(42); 
function g = obj.method.bind('Hi');

function f2 = f.bind('Hi'); // “this” is still 42
Run Code Online (Sandbox Code Playgroud)

是否可以从绑定函数中检索原始的未绑定函数?

javascript bind function ecmascript-5

22
推荐指数
2
解决办法
4648
查看次数

在iOS上缩小图像的内存效率最高的方法是什么?

在后台线程中,我的应用程序需要从磁盘读取图像,将它们缩小到屏幕大小(1024x768或2048x1536)并将它们保存回磁盘.原始图像主要来自相机胶卷,但其中一些可能具有较大的尺寸(例如3000x3000).

稍后,在不同的线程中,这些图像将经常缩小到500x500左右的不同大小并再次保存到磁盘.

这让我想知道:在iOS,性能和内存方面,最有效的方法是什么?我使用了两种不同的API:

两者都适合我,但我想知道他们在性能和内存使用方面是否有任何差异.如果有更好的选择,当然.

memory-management core-graphics cgimage ios javax.imageio

22
推荐指数
3
解决办法
5158
查看次数

是否有"最喜欢的"文件夹和文件的Visual Studio扩展?

我正在开发一个包含多个类库,数据库模型和ASP .NET MVC网站项目的中型项目.但是,即使解决方案中的项目少于15个,我经常会发现自己正在折叠和扩展无限的文件夹以查找某个类或视图.

虽然寻找类主要通过Resharper 类型导航功能解决,但我经常想在MVC项目中切换到某个视图.我不记得文件名,它不会解决这个问题或者是因为有与相同的文件名多视图(例如Message\ViewSingle.cshtml,Product\ViewSingle.cshtml).

我更想要的是能够"喜欢"某些文件,项目或文件夹,以便它们显示在单独的类似Solution Explorer的窗口上以便快速访问.

是否有这样的扩展(免费)?

更新

@samy 指出,Sergey VlasovFavorite Documents扩展允许通过菜单栏快速访问,我通常倾向于隐藏它,并且更喜欢可停靠的窗口解决方案,所以我仍然在寻找.我写了谢尔盖,以了解他是否打算使用这个功能.

更新(8月4日)

我刚刚收到谢尔盖的一封信,他给我指的是最喜欢的文件1.1有一个专门的窗口.所以我接受samy的回答.

projects-and-solutions visual-studio-2010 visual-studio solution-explorer visual-studio-extensions

19
推荐指数
1
解决办法
2661
查看次数

在UIScrollView中禁用2个手指滚动

我想在我的手机中禁用双指滚动UIScrollView.
我将其子类化并使用以下代码调整其内置手势识别器:

for (UIGestureRecognizer *mgestureRecognizer in scroller.gestureRecognizers) {     
    if ([mgestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]])
    {
        UIPanGestureRecognizer *mpanGR = (UIPanGestureRecognizer *) mgestureRecognizer;
        mpanGR.minimumNumberOfTouches = 1; 
        mpanGR.maximumNumberOfTouches = 1;

    }

    if ([mgestureRecognizer isKindOfClass:[UISwipeGestureRecognizer class]])
    {
        UISwipeGestureRecognizer *mswipeGR = (UISwipeGestureRecognizer *) mgestureRecognizer;
        mswipeGR.numberOfTouchesRequired = 1;
    }
Run Code Online (Sandbox Code Playgroud)

出于某种原因,maximumNumberOfTouches似乎没有用.我仍然可以用一根或两根手指滚动.如果我将两个属性都更改为2,我可以成功禁用单指滚动并需要两次触摸.

有任何想法吗?

objective-c uiscrollview uigesturerecognizer

19
推荐指数
1
解决办法
3730
查看次数

我可以在Retina显示屏上使MonoDevelop看起来很好吗?

我买了一台新的Retina MacBook Pro,用于开发适用于iOS的MonoTouch.
非常令人沮丧的是,可能因为它是基于Gtk#构建的,MonoDevelop非常模糊.

MonoDevelop在Retina显示屏上模糊

我可以应对模糊的UI,但我无法读取或编写代码,因为它会伤害我的眼睛.

在Gtk#和MonoDevelop中Retina支持的现状如何?
是否有任何(实验性)编译标志至少能够实现正确的代码渲染?

如果我想贡献,哪个组件负责这个?它是Gtk#还是Gtk本身?

gtk# monodevelop xamarin.ios retina-display xamarin

18
推荐指数
1
解决办法
2031
查看次数

用于乐观更新的操作存储是Redux/Flux中的一种好方法吗?

我一直在使用React + Flux应用程序中的乐观更新,并看到两件事:

  1. 如果用户在存在一些未完成的操作时尝试关闭窗口会发生什么.例如在Facebook中,即使没有真正持久化,也会在墙上显示一条消息(这是乐观更新所做的,对用户来说响应更快的应用程序).但是,如果用户在墙上发布并立即关闭应用程序(在注销或窗口关闭时),帖子可能会失败并且他不会收到警报.
  2. 我不喜欢Stores管理他自己的实体(例如消息)的想法以及为persiste消息触发的动作的情况(加载,成功,失败?).它混合了一些东西.

因此,我致力于此并创建一个ActionStore来管理由组件触发的操作的状态.这是源代码,这是一个现场演示.

它的工作方式或多或少是这样的:

  1. 组件层次结构的根(redux中的容器)获取新操作的nextId并将其传递给他的子项,如props(这很难看).
  2. 子组件触发一个动作:它保持actionId以便在之后向商店询问并调用动作创建者.
  3. 动作创建者创建一个新的Action并将函数返回给中间件.
  4. 从Action返回的函数使用API​​调用创建一个新的Promise,并调度类型为XX_START的操作.
  5. ActionStore会侦听XX_START操作并保存它.
  6. 子组件接收新状态并找到具有已保存ID的操作,并询问当前情况:加载,成功或失败.

我这样做主要是为了将"实体"的状态与动作的状态分开,但允许具有相同有效负载的重新触发操作(如果服务器临时关闭或者如果我们收到500响应状态,这可能很有用用户松动的信号).

此外,拥有操作存储允许在用户注销或关闭窗口之前轻松询问它们是否为待处理操作.

注意:我正在使用针对Rest API的单应用程序页面Web应用程序,我不认为在服务器端呈现时使用它

这是一个可行的选择创建一个ActionStore或我打破一些Redux/Flux基础?这可能会结束使用React Hot Reloading和Time travel的可能性吗?

你应该毫不留情地回答,我可能做了一堆丑陋的事情,但我正在学习React/Redux.

javascript flux reactjs redux

18
推荐指数
1
解决办法
3666
查看次数