问题列表 - 第12089页

动态对象属性populator(无反射)

我想以类似于CodeProject上的DynamicBuilder的方式填充对象的属性而不使用反射.CodeProject示例是为使用DataReader或DataRecord填充实体而定制的.我在几个DAL中使用它以达到很好的效果.现在我想修改它以使用字典或其他数据不可知对象,以便我可以在非DAL代码中使用它 - 我目前使用反射.我对OpCodes和IL几乎一无所知.我只知道它运作良好,比反射更快.

我试图修改CodeProject示例,由于我对IL的无知,我已经陷入两行.

  • 其中一个处理dbnulls,我很确定我可以丢失它,但我不知道它之前和之后的行是否相关,以及它们中的哪一个也需要去.
  • 另一方面,我认为,是之前将价值从数据线中拉出来的,现在需要将其从字典中拉出来.我想我可以用"property.Value"替换"getValueMethod",但我不确定.

我也愿意采用替代/更好的方法来遮盖这只猫.

这是迄今为止的代码(注释掉的行是我坚持的行):

using System;
using System.Collections.Generic;
using System.Reflection;
using System.Reflection.Emit;

public class Populator<T>
{
    private delegate T Load(Dictionary<string, object> properties);
    private Load _handler;
    private Populator() { }
    public T Build(Dictionary<string, object> properties)
    {
        return _handler(properties);
    }
    public static Populator<T> CreateBuilder(Dictionary<string, object> properties)
    {
        //private static readonly MethodInfo getValueMethod = typeof(IDataRecord).GetMethod("get_Item", new [] { typeof(int) });
        //private static readonly MethodInfo isDBNullMethod = typeof(IDataRecord).GetMethod("IsDBNull", new [] { typeof(int) });
        Populator<T> dynamicBuilder = …
Run Code Online (Sandbox Code Playgroud)

c# ilgenerator opcode

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

如何使ChildWindow阻止

ChildWindow是一个模态窗口,但它不会阻塞.有没有办法让它阻止?我基本上想要一个ShowDialog()方法,它将调用ChildWindow.Show(),但在用户关闭ChildWindow之前不会返回.我尝试使用Monitor.Enter()来阻止ChildWindow.Show(),但是ChildWindow从未呈现过,浏览器只是挂起.有人有主意吗?

silverlight silverlight-3.0

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

如何在不使用Data :: Compare的情况下比较Perl中的两个哈希值?

如何在不使用Data :: Compare的情况下比较Perl中的两个哈希值?

perl hash

13
推荐指数
2
解决办法
4万
查看次数

如何为Cruisecontrol.NET设置多个触发器?

我是CruiseControl.net的新手,我正在尝试为我正在进行的项目设置它.该项目保持颠覆,但整个项目由核心项目和几个组件组成,每个组件都有一个单独的subversion项目,每个组件都有一个主干,可能的分支和标签.我需要设置cruisecontrol.net,以便主核心项目subversion文件夹以及任何包含的组件的更改触发构建.显然,如果提交包含提交给多个组件的文件,我仍然只需要一个构建.可能吗?

svn cruisecontrol.net msbuild

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

我可以阻止UITableViewCell自动调整其子视图吗?

UITableView在每个单元格中都有自定义背景图像.底部单元格具有更高的图像,其余部分,因为它包含阴影.这意味着我必须将一个部分中最后一个单元格的高度扩展到比正常高.

当我这样做时,它们的内容UITableViewCell就像它们停留在细胞底部而不是中间(因为视觉细胞比实际细胞短).有没有办法让我可以从顶部而不是中心定位我的内容,而UITableViewCell当单元格成为底部单元格时(由于删除或其他),不能调整大小?

将标签上的自动调整遮罩设置为具有静态顶部边界不起作用,也不关闭autoresizesSubviews单元格.

我还想过简单地将所有单元格设置为相同高度并关闭clipsToBounds背景图像,除了背景图像是水平和垂直的可伸缩图像,并且需要能够根据单元格内容的高度调整大小.

任何其他不涉及hackish方法的想法?

iphone cocoa-touch uitableview

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

使用Qt 4.4的自定义停靠区

是否可以使用Qt 4.4创建自定义停靠区。我知道这是可能的Qt中3,因为这文件建议。摘录自文档“ ...如果需要创建自己的停靠区,我们建议您创建QWidget的子类并将Q3DockAreas添加到子类中。”。但是,在我看来,在Qt 4中Q3DockArea已被删除,现在QMainWindow本身具有停靠区。我基本上想拥有自己的停靠区小部件,可以将其停靠到其中。该停靠区小部件可以在应用程序中的任何位置。关于如何执行此操作的任何想法?

qt dockable

4
推荐指数
1
解决办法
3559
查看次数

如何在WordPress.com上托管的WordPress博客中添加语法突出显示?

我想为我的WordPress博客提供一个好的语法高亮显示器.我有哪些选择?我经常看到一个具有良好颜色的语法突出显示和复制到剪贴板的选项.有谁知道这是什么工具?

wordpress blogs syntax-highlighting

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

VirtualizingStackPanel + MVVM +多选

我已经实现类似于在所描述的一个的选择图案此篇使用视图模型来存储IsSelected值,并通过结合所述ListViewItem.IsSelected的视图模型IsSelected:

<ListView.ItemContainerStyle>
    <Style TargetType="{x:Type ListViewItem}">
        <Setter Property="IsSelected" Value="{Binding Mode=TwoWay, Path=IsSelected}"/>
    </Style>
</ListView.ItemContainerStyle>
Run Code Online (Sandbox Code Playgroud)

它一般工作,但我遇到了严重的问题.通过VirtualizingStackPanel在列表视图中使用a 作为面板,仅ListViewItem创建了可见的.如果我使用"Ctrl + A"选择所有项目,或者使用第一项上的"Shift + Ctrl + End"快捷键组合,则会选择所有项目,但对于不可见项目,ViewModel不会获取其IsSelected设为true.这是合乎逻辑的,因为如果ListViewItem没有创建,绑定就无法工作.

任何人都遇到了同样的问题,并找到了解决方案(除了不使用a VirtualizingStackPanel)?

wpf listview mvvm stackpanel virtualizingstackpanel

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

我可以使用EPUB格式的LaTeX文档创建吗?

是否可以使用LaTeX/TeX以EPUB格式为电子书阅读器创建文档?可以使用哪个扩展程序或程序?

latex tex epub

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

重构帮助c#

我有几百行代码,如下所示:

if (c.SomeValue == null || c.SomeProperty.Status != 'Y')
{
    btnRecordCall.Enabled = false;
}

if (c.SomeValue == null || (c.SomeProperty.Status != 'Y' &&
    c.SomeOtherPropertyAction != 'Y'))
{
    btnAddAction.Enabled = false;
}

if (c.SomeValue == null || c.SomeProperty.Processing != 'Y')
{
    btnProcesss.Enabled = false;
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能正确地重构这个?我看到每次调用检查'c.SomeValue == null',但它包含在其他条件中.我怎么可能消除这个重复的代码?

c# refactoring design-patterns

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