我有一个Asp.Net MVC3应用程序,它使用嵌入式RavenDB来存储数据.视图需要以这种方式由控制器创建的json数据:
public ContentResult Data()
{
var res = JsonConvert.SerializeObject(DocumentSession.Query<DataObject>());
return new ContentResult { Content = res, ContentType = "application/json" };
}
Run Code Online (Sandbox Code Playgroud)
一切正常但对我而言似乎效率低下,因为以JSON格式存储在DB中的数据在POCO中序列化,然后再次反序列化.
有没有更直接的方法直接从嵌入式数据库获取json数据?
我有一个带有ItemSource和以这种方式定义的ItemTemplate的RibbonSpitButton:
<RibbonSplitButton x:Name="SplitButton3DViews"
ItemsSource="{Binding items}"
Label="{String Views3D}"
IsCheckable="False">
<RibbonSplitButton.ItemTemplate>
<DataTemplate>
<RibbonMenuItem Header="{Binding Name}" ImageSource="{Binding Icon}" Command="{Binding cmd}"/>
</DataTemplate>
</RibbonSplitButton.ItemTemplate>
</RibbonSplitButton>
Run Code Online (Sandbox Code Playgroud)
Everithing有效但图形结果如下:

如何将子项的图标放在适当的位置(在菜单的蓝色部分)?
为了评估乘法,你必须评估第一个术语,然后是第二个术语,最后将两个值相乘.
假设每个乘以0的数字为0,如果第一项的评估返回0,我将期望在不评估第二项的情况下将整个乘法计算为0.
但是,如果您尝试此代码:
var x = 0 * ComplexOperation();
Run Code Online (Sandbox Code Playgroud)
尽管我们知道x是0,但函数ComplexOperation被调用.
优化的行为也与布尔运算符'&&'一致,仅当第一项被评估为真时才计算第二项.('&'运算符在任何情况下都会评估这两个术语)
我测试了这种行为,C#但我猜几乎所有语言都是一样的.