小编wpf*_*abe的帖子

强制XmlSerializer将DateTime序列化为'YYYY-MM-DD hh:mm:ss'

我有一些用于某些RESTful服务的XSD架构.当与xsd.exe工具结合使用以生成C#代码时,XSD会xs:date生成以下代码:

[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType="date")]
public System.DateTime time {
    get {
        return this.timeField;
    }
    set {
        this.timeField = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

将XML反序列化为使用XmlSerializerall的对象似乎很好.我面临的问题是服务要求将日期格式化为YYYY-MM-DD hh:mm:ss,并且XSD生成的代码似乎只生成YYYY-MM-DD.

如果我手动修改XSD以进行xs:dateTime输入,则生成的C#代码会产生:2010-08-20T20:07:03.915039Z.

基本上,我如何强制序列化生成YYYY-MM-DD hh:mm:ss?是否可以对XSD做些什么或者我可以做些什么来改变生成的C#代码?

.net c# xml-serialization

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

通过方法'System.Web.Helpers.Json..cctor()'尝试访问方法'System.Web.Helpers.Json.CreateSerializer()'失败

System.Web.Helpers.Json用于将一些JSON反序列化到dynamicNET 4中.以下行失败并出现此错误:TypeInitializationException: Attempt by method 'System.Web.Helpers.Json..cctor()' to access method 'System.Web.Helpers.Json.CreateSerializer()' failed.

var json = Json.Decode(response);
Run Code Online (Sandbox Code Playgroud)

response是一个冗长但有效的JSON.这可能是什么问题?我试过LINQPad和一个简短的手工JSON,它的工作原理.这是某种配置问题吗?

[编辑]

这是实际的JSON示例.看起来内容几乎无关紧要.当它在一个全新的控制台应用程序或LINQPad中运行时,它按预期工作.但是,如果您尝试从全新的Windows窗体应用程序运行相同的代码,则会出现上述错误.

var json = Json.Decode("{\"r\":{\"0\":{\"id\":\"2\"},\"1\":{\"id\":\"33\"}}}");
Run Code Online (Sandbox Code Playgroud)

[EDIT2]

实际上,事实证明这与项目类型无关.如果正在调试项目,则抛出异常.如果只是运行,则不会发生异常.奇怪,是吗?

.net c# json .net-4.0

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

不区分大小写的std :: string.find()

我正在使用std::stringfind()方法来测试字符串是否是另一个字符串的子字符串.现在我需要不区分大小写的同一件事.对于字符串比较,我总是可以转向,stricmp()但似乎没有stristr().

我找到了各种答案,大多数建议使用Boost哪个不是我的选择.另外,我需要支持std::wstring/ wchar_t.有任何想法吗?

c++ string stl case-insensitive wstring

58
推荐指数
5
解决办法
9万
查看次数

在Visual Studio IDE中自动生成XSD到C#

我正在运行Visual Studio 2010.我有一个XSD架构,并希望使用xsd.exe工具生成适当的C#文件.我已经从命令行成功完成了这项工作,但现在我想从IDE中做同样的事情.

有一些众所周知的路线吗?我已经设法使用预构建事件,但我讨厌在每个构建上运行该工具.通常,它只应在XSD更改时运行.

将生成的.cs文件添加到项目中会将其置于同名的.xsd下,因此IDE知道它们是相关的.

我知道我可以在我的.xsd上设置"自定义工具",但我不确定它是否达到了预期的效果.我希望有一种更直接的方式.

最终,VS2010无法执行XSD.EXE,因为它位于SDK文件夹中,而VS已知的路径显然不包含它.

欢迎任何建议!

c# xsd xsd.exe visual-studio

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

找到指定节点后查找兄弟节点

考虑以下非常简化的示例.

<n></n>
<k></k>
<m></m>
<k></k>
Run Code Online (Sandbox Code Playgroud)

如何km节点后搜索第一个兄弟?基本上,找到一些节点,然后继续从该节点进行搜索.

xpath

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

DataGrid的CellEditingTemplate并专注于编辑模式

DataGrid当一个列定制供应两者CellTemplate和时,我遇到了WPFToolkit的问题CellEditingTemplate.如果你看一下下面,你会看到我的编辑模板有一个CheckBox.在功能意义上一切都很好但是当点击F2来编辑单元格时,还必须点击TAB才能CheckBox获得焦点.理想情况下,人们会点击F2和SPACE来切换值.目前,必须打F2,TAB,SPACE.我试过设置TabIndex无济于事.我的想法已经不多了.

<WPFToolkit:DataGridTemplateColumn Header="Turn"
                                   MinWidth="60">
    <WPFToolkit:DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Image Height="16">
                <Image.Style>
                    <Style TargetType="{x:Type Image}">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding CanTurn}" Value="True">
                                <Setter Property="Source" Value="/Images/16/Tick.png" />
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </Image.Style>
            </Image>
        </DataTemplate>
    </WPFToolkit:DataGridTemplateColumn.CellTemplate>

    <WPFToolkit:DataGridTemplateColumn.CellEditingTemplate>
        <DataTemplate>
            <CheckBox IsChecked="{Binding Path=CanTurn}" HorizontalAlignment="Center" HorizontalContentAlignment="Center" />
        </DataTemplate>
    </WPFToolkit:DataGridTemplateColumn.CellEditingTemplate>
</WPFToolkit:DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml wpftoolkit wpfdatagrid

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

从驱动器号获取特定设备类型

我想检测何时将SD(或其他卡)插入读卡器.我知道WM_DEVICECHANGE但是我需要在给出驱动器号的情况下获取特定的设备类型信息.例如,我想区分读卡器中的任何卡与"普通"闪存驱动器.GetDriveType()似乎不够精致.我的其他选择是什么?

我对Windows 7解决方案感到满意.我不需要向后兼容.

这种改进是否全部可能?

我发现这个主题没有提供令人满意的答案.这个感觉就像是要走的路,但是没有示例代码的示例代码或指针.令人难以置信的是,没有人将这样一个共同请求的工作样本拼凑在一起.

[编辑]

我也发现了这个.提供的样本有一些错误,但在修复后我仍然没有得到任何结果.对于具有插入SD卡的设备,我收到了BusTypeUnknown,而不是BusTypeSdpDeviceDesc.BusType.这似乎很简单,但仍然失败了.

winapi

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

在C++中静态初始化匿名联合

我试图在Visual Studio 2010中静态初始化以下结构:

struct Data
{
   int x;
   union
   {
      const Data* data;
      struct {int x; int y; };
   };
};
Run Code Online (Sandbox Code Playgroud)

以下是失败的error C2440: 'initializing' : cannot convert from 'Data *' to 'char'.

static Data d1;
static Data d = {1, &d1};
static Data d2 = {1, {1, 2}};
Run Code Online (Sandbox Code Playgroud)

我已经找到了一些可以正确初始化的方法的引用,但它们都不能在VS2010中工作.有任何想法吗?

c++ initialization visual-c++ unions

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

即使不需要裁剪也可以剪裁WPF - 如何将其关闭?

我需要浮出来一些内容出来的ListBox所指定的DataTemplate一个ListBox.ItemTemplate.我正在使用,RenderTransform但内容被限制在ListBox边界上.ClipToBoundsFalse整个视觉树.

我已经读过WPF内部执行一些剪辑的地方,即使没有指定专用剪辑属性.我还发现使用Canvas有时可以解决剪裁问题,但在这里没有用.

我怎样才能克服这个问题?这是我要解决的一些XAML.请注意,缺少矩形的整个左侧部分.

    <ListBox>
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Rectangle Fill="Red" Stroke="Green" StrokeThickness="4" Width="100" Height="50">
                    <Rectangle.RenderTransform>
                        <TranslateTransform X="-50" />
                    </Rectangle.RenderTransform>
                </Rectangle>
            </DataTemplate>
        </ListBox.ItemTemplate>

        42
    </ListBox>
Run Code Online (Sandbox Code Playgroud)

wpf clipping

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

在CAB中部署C#ActiveX以供Internet Explorer使用

我正在拼命尝试将用于在C#中开发的IE的ActiveX部署为CAB存档.我已经阅读了很多资源(其中一些来自StackOverflow),看起来很多人都遇到了同样的问题.我尝试了3个解决方案:a)创建CAB VS项目,b)使用CABARCINF中的COM注册手动创建CAB,c)手动创建带启动的CAB msiexec.他们都没有工作.我甚至试过d)创建一个启动msiexec无效的引导程序(因为有些人建议只msiexec在Vista上启动无法工作).

我正在运行Windows Vista但我的项目甚至无法在XP上的IE6上运行.

当我使用MSI安装ActiveX时,所有Windows都可以.显然CAB的东西不起作用,我找不到调试整个过程的正确方法.

任何帮助表示赞赏.

c# internet-explorer activex cab

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