问题列表 - 第11176页

如何使DataContractJsonSerializer将对象序列化为字符串?

我在C#中有一个包含guid的结构.我正在使用DataContractJsonSerializer来序列化包含该类实例的对象.当我直接使用guid时,它被序列化为纯字符串,但现在它被序列化为名称/值对.这是一个NUnit测试和支持代码,用于演示此问题:

    private static string ToJson<T>(T data)
    {
        DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof (T));

        using (MemoryStream ms = new MemoryStream())
        {
            serializer.WriteObject(ms, data);
            return Encoding.Default.GetString(ms.ToArray());
        }
    }

    [Serializable]
    private class ID
    {
        private Guid _value;

        public static explicit operator ID(Guid id)
        {
            return new ID { _value = id };
        }

        public static explicit operator Guid(ID id)
        {
            return id._value;
        }
    }

    [Test]
    public void IDShouldSerializeLikeGuid()
    {
        Guid guid = Guid.NewGuid();
        ID id = (ID) guid;
        Assert.That(ToJson(id), Is.EqualTo(ToJson(guid)));
    }
Run Code Online (Sandbox Code Playgroud)

并且测试运行输出:

NUnit.Framework.AssertionException: …
Run Code Online (Sandbox Code Playgroud)

.net c# json datacontractserializer

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

使用参数信息记录WCF服务调用

我一直在使用服务跟踪查看器来分析在我们的应用程序中进行的WCF服务调用,但我真的需要查看传递给服务方法的参数值吗?这可能吗?我已经尝试将记录转为最大输出,但仍然看不到任何东西:(

.net wcf logging

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

LD_PRELOAD等效于Windows预加载共享库

我正在尝试做LD_PRELOAD所做的事情,即将Windows上的共享库或DLL文件预加载到给定程序以覆盖某些功能.

是否有LD_PRELOADWindows 的等价物?

我没有任何具体的功能.我只知道这在Linux上是可行的,我很好奇如何在Windows上完成本机DLL的重载.

overloading shared-libraries inter-process-communicat

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

为什么"as T"会出错,但是使用(T)进行转换不会出错?

我为什么这样做:

public T GetMainContentItem<T>(string moduleKey, string itemKey)
{
    return (T)GetMainContentItem(moduleKey, itemKey);
}
Run Code Online (Sandbox Code Playgroud)

但不是这个:

public T GetMainContentItem<T>(string moduleKey, string itemKey)
{
    return GetMainContentItem(moduleKey, itemKey) as T;
}
Run Code Online (Sandbox Code Playgroud)

它抱怨我没有足够的限制泛型类型,但我认为该规则也适用于使用"(T)"进行转换.

c# generics casting

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

如何在焦点上选择JFormattedTextField中的所有文本?

我有一个使用Swing的小型Java桌面应用程序.有一个数据输入对话框,其中包含一些不同类型的输入字段(JTextField,JComboBox,JSpinner,JFormattedTextField).当我通过在表单中​​进行选项卡或通过鼠标单击来激活JFormattedTextField时,我希望它选择它当前包含的所有文本.这样,用户就可以开始输入并覆盖默认值.

我怎样才能做到这一点?我确实使用了一个在JFormattedTextField上调用selectAll()的FocusListener/FocusAdapter,但它没有选择任何东西,尽管调用了FocusAdapter的focusGained()方法(参见下面的代码示例).

private javax.swing.JFormattedTextField pricePerLiter;
// ...
pricePerLiter.setFormatterFactory(
    new JFormattedTextField.AbstractFormatterFactory() {
    private NumberFormatter formatter = null;
    public JFormattedTextField.AbstractFormatter 
        getFormatter(JFormattedTextField jft) {
        if (formatter == null) {
            formatter = new NumberFormatter(new DecimalFormat("#0.000"));
            formatter.setValueClass(Double.class);
        }
        return formatter;
    }
});
// ...
pricePerLiter.addFocusListener(new java.awt.event.FocusAdapter() {
    public void focusGained(java.awt.event.FocusEvent evt) {
        pricePerLiter.selectAll();
    }
});
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?有趣的是,选择它的所有文本显然是JTextField和JSpinner的默认行为,至少在表格中选项时是这样.

java user-interface swing

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

DVCS和数据丢失?

在使用DVCS近两年之后,似乎一个固有的"缺陷"是意外的数据丢失:我丢失了没有推送的代码,我知道其他人也有.

我可以看到一些原因:非现场数据复制(即"提交必须转到远程主机")没有内置,存储库与代码和"hack"概念存在于同一目录中直到你有一些东西要发布"很普遍...但这不是重点.

我很想知道:您是否经历过与DVCS相关的数据丢失?或者您是否一直在使用DVCS?而且,相关的,除了"记得经常推"之外,还有什么可以做的,以尽量减少风险?

version-control dvcs

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

验证编译器是否生成Java 1.5代码

我有一个jar文件,我使用一个ant文件从编译的类文件生成<javac target="1.5" ... />,我想验证它实际上产生1.5代码.有没有办法做到这一点?

我的MATLAB版本是我正在使用的一台计算机,使用的是JRE 1.5; 所以它不会运行代码,除非它与JRE 1.5兼容.它对我生成的大多数JAR文件都运行良好,但我有一个表现正常,有一个奇怪的错误:

>> s = javaObject('com.example.test.hdf5.Test1');
??? Error using ==> javaObject
No constructor with appropriate signature exists
in Java class com.example.test.hdf5.Test1
Run Code Online (Sandbox Code Playgroud)

即使这是我的类,它有一个常规的旧无参数构造函数:

package com.example.test.hdf5;

import ncsa.hdf.hdf5lib.H5;
import ncsa.hdf.hdf5lib.HDF5Constants;
import ncsa.hdf.hdf5lib.exceptions.HDF5LibraryException;
import ncsa.hdf.object.FileFormat;
import ncsa.hdf.object.h5.H5File;

public class Test1 {
    public Test1 () {}

    public static void main(String args[])
    {
        Test1 test = new Test1();
        if (args.length < 2)
        {

        }
        else if ("h5file".equals(args[0]))
        {
            test.testH5File(args[1]);
        }
        else if ("h5f".equals(args[0]))
        {
            test.testH5F(args[1]);          
        }
    } …
Run Code Online (Sandbox Code Playgroud)

java compiler-construction matlab

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

在Python 2.4中,如何在';'之后删除字符?

假设我正在解析一个;用作注释字符的文件.我不想解析评论.所以,如果我的一行看起来像这样:

example.com.              600     IN      MX      8 s1b9.example.net ; hello!
Run Code Online (Sandbox Code Playgroud)

是否有一种更简单/更优雅的方法来剥离除此之外的字符:

rtr = ''
for line in file:
    trig = False
    for char in line:
        if not trig and char != ';':
            rtr += char
        else:
            trig = True
    if rtr[max(rtr)] != '\n':
        rtr += '\n'
Run Code Online (Sandbox Code Playgroud)

python string python-2.4

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

如何使用type()创建绑定方法?

我正在动态生成一个函数并将其分配给一个类.这是我想要实现的一个简单/最小的例子:

def echo(obj):
    print obj.hello

class Foo(object):
    hello = "Hello World"

spam = type("Spam", (Foo, ), {"echo":echo})
spam.echo()
Run Code Online (Sandbox Code Playgroud)

导致此错误

Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: unbound method echo() must be called with Spam instance
    as first argument (got nothing instead)
Run Code Online (Sandbox Code Playgroud)

我知道我是否使用了@staticmethod可以spam作为参数传递的装饰器来回显,但在我的用例中这对我来说是不可能的.

我如何获得echo绑定Spam和访问的功能self?有可能吗?

python

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

按升序排序数组,同时最小化"成本"

我下学期参加comp 2210(数据结构),我一直在网上发布夏季学期的作业.到现在为止,我在完成作业时没有遇到任何问题.看一下下面的作业4,看看你是否可以给我一个如何处理它的提示.请不要提供完整的算法,只是一种方法.谢谢!

"成本排序"是一种算法,其中值序列必须按升序排列.通过一次一个地交换两个值的位置来执行排序,直到序列处于正确的顺序.每个交换产生一个成本,该成本计算为交换中涉及的两个值的总和.该类别的总成本是交换成本的总和.

例如,假设起始序列是{3,2,1}.一系列可能的交换是

Interchange 1: {3, 1, 2} interchange cost = 0 
Interchange 2: {1, 3, 2} interchange cost = 4 
Interchange 3: {1, 2, 3} interchange cost = 5, 
given a total cost of 9
Run Code Online (Sandbox Code Playgroud)

您要编写一个程序来确定排列特定数字序列的最低成本.

编辑:教授不允许暴力强迫.

algorithm

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