小编Doo*_*Dah的帖子

列表的XML序列化

我正在将对象序列化为XML.我有这样的事情:

Class A
{
   public string propertyA1  { get; set; }
   public List<B> bList { get; set; }
}

Class B
{
   public string num {get; set;}
   public string propertyB1  { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

当我将它序列化为XML时,我希望它看起来像这样:

<A>
  <propertyA1>someVal</propertyA1> 
  <B num=1>
     <propertyB1>someVal</propertyB1> 
  </B>
  <B num=2>
     <propertyB1>someVal</propertyB1> 
  </B>
</A>
Run Code Online (Sandbox Code Playgroud)

但是,它看起来像这样:

<A>
  <propertyA1>someVal</propertyA1> 
  <bList>
     <B num=1>
        <propertyB1>someVal</propertyB1> 
     </B>
     <B num=2>
        <propertyB1>someVal</propertyB1> 
     </B>
  </bList>
</A>
Run Code Online (Sandbox Code Playgroud)

知道怎么摆脱输出中的bList吗?如果需要,我可以提供更多示例代码

谢谢,斯科特

.net c# xml xml-serialization

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

py2exe找不到所有依赖项

我试图从python代码创建一个exe.我可以从命令行运行代码,如下所示:

python myScript.py
Run Code Online (Sandbox Code Playgroud)

我从这里安装了py2exe:http://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/

并且,有一个如下所示的setup.py:

from distutils.core import setup
import py2exe

setup(console=['myScript.py'])
Run Code Online (Sandbox Code Playgroud)

而且,我像这样运行setup.py:

python setup.py py2exe
Run Code Online (Sandbox Code Playgroud)

我在输出中得到以下内容:

The following modules appear to be missing
['Carbon', 'Carbon.Files', '__pypy__', '_scproxy', 'http_parser.http', 'http_parser.reader', 'jinja2._debugsupport', 'jinja2._markupsafe._speedups',
'jinja2.debugrenderer', 'markupsafe', 'pretty', 'socketpool', 'socketpool.util']
Run Code Online (Sandbox Code Playgroud)

而且,果然,如果我尝试运行exe,我会收到错误:

$ ./myScript.exe
Traceback (most recent call last):
  File "restkit\__init__.pyc", line 9, in <module>
  File "restkit\conn.pyc", line 14, in <module>
ImportError: No module named socketpool
Traceback (most recent call last):
  File "myScript.py", line 12, in <module>
ImportError: cannot import name …
Run Code Online (Sandbox Code Playgroud)

python py2exe cx-freeze

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

.NET C#Thread异常处理

我以为我理解了这一点,并且有点尴尬要问,但是,有人可以向我解释为什么以下代码的异常处理程序中的断点没有被命中?

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    static void Main()
    {
        Thread testThread = new Thread(new ParameterizedThreadStart(TestDownloadThread));
        testThread.IsBackground = true;
        testThread.Start();
    }

    static void TestDownloadThread(object parameters)
    {
        WebClient webClient = new WebClient();

        try
        {
            webClient.DownloadFile("foo", "bar");
        }
        catch (Exception e)
        {
            System.Console.WriteLine("Error downloading: " + e.Message);
        }
    }
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading

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

jqGrid警告对话框

我在jqGrid上有一些自定义工具栏按钮.其中一个依赖于选择的行,就像内置的编辑和删除按钮一样.当用户点击它而没有选择任何行时,我希望向用户显示与内置编辑或删除按钮一起呈现的相同警告对话框.也就是说,我想重用网格使用的对话框:

警告请选择行

知道网格显示警报的地方吗?

谢谢,斯科特

jquery jqgrid

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

Python ctypes和char**

我在C中有以下结构:

struct wordSynonym
{
    wchar_t* word;
    char** synonyms;
    int numSynonyms;
};

struct wordList
{
    wordSynonym* wordSynonyms;
    int numWords;
};
Run Code Online (Sandbox Code Playgroud)

而且,我在Python中有以下内容:

class wordSynonym(Structure):
    _fields_ = [ ("word", c_wchar_p),
                  ("synonyms", POINTER(c_char_p)), # Is this correct?
                  ("numSynonyms", c_int) ];

class WordList(Structure):
    _fields_ = [ ("wordSynonyms", POINTER(wordSynonym)),
                 ("numWords", c_int)];
Run Code Online (Sandbox Code Playgroud)

char**在python中引用的正确方法是什么?也就是说,在Python代码中,是否POINTER(c_char_p)正确?

python ctypes

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

C++ Python导入类; 呼叫方法

我使用的是Python 2.7.我不清楚如何在C++中嵌入Python,如下所示:http://docs.python.org/2.7/extending/embedding.html.

我在一个名为test.py的文件中有一个简单的python示例:

class math:
    #def __init__(self):
    def add(self, num1, num2):
        return num1 + num2

    def subtract(self, num1, num2):
        return num1 - num2
Run Code Online (Sandbox Code Playgroud)

从python,我会做这样的事情:

>>> from test import math
>>> m = math()
>>> a = m.add(1, 2)
>>> s = m.subtract(1, 2)
Run Code Online (Sandbox Code Playgroud)

我有一些C++代码的开头来做到这一点:

PyObject *pName, *pModule;
Py_Initialize();
pName = PyString_FromString("test");
pModule = PyImport_Import(pName);
Run Code Online (Sandbox Code Playgroud)

这似乎工作得很好.但是,这似乎相当于在Python中执行此操作:

import test
Run Code Online (Sandbox Code Playgroud)

如何导入Python类数学?

谢谢

c++ python python-c-api

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

print:"IOError:[Errno 9]错误的文件描述符"

我理解为什么我在这篇文章中没有控制台打印时收到"错误的文件描述符"错误:为什么我在制作打印语句时遇到IOError:(9,'错误的文件描述符')错误?.

我的问题是,如何检测stdout是否可用?我可以简单地做这样的事情:

if os.path.isfile(2):
   print "text"
Run Code Online (Sandbox Code Playgroud)

谢谢

python

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

记录仪、力线输出

我设置了一个记录器。像这样的东西:

def initLogger(self):
    self.logger = logging.getLogger('MyApp')
    if not self.logger.handlers:
        hdlr = logging.FileHandler('MyApp.log')
        formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
        hdlr.setFormatter(formatter)
        self.logger.addHandler(hdlr)
        self.logger.setLevel(logging.WARNING)
Run Code Online (Sandbox Code Playgroud)

我想在程序启动时始终在日志中打印一行。但是,我不想将其记录为警告。我只是想始终有一个标记执行开始的痕迹。我知道我可以将级别切换到 INFO 或 DEBUG 并调用 self.logger.info("Program start"),但这看起来很混乱。有没有办法无论记录器级别如何都强制输出?

谢谢

python logging

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

Visual Studio WiX和补丁

我试图用Visual Studio构建一个WiX补丁.很容易.我使用Visual Studio构建,并构建它.但是,当我尝试运行生成的MSI时,我被告知

无法打开此安装包.请与应用程序供应商联系以验证这是否是有效的Windows Installer程序包.

理想情况下,我会创建一个小得多的msp路径文件,但为了简单起见,我可以使用MSI文件.如何使用Visual Studio执行此操作,或者,是否需要下拉到命令行并使用candle.exe,light.exe,torch.exe和pyro.exe?

WiX代码看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Patch
          AllowRemoval="yes"
          Classification="Update"
          Comments="Some Patch for v 1.0.0"
          Description="Updates Some Software to v 1.0.1"
          DisplayName="Some software Patch 03/07/2011"
          Manufacturer="MyMfg"
          TargetProductName="SomeProduct">

        <Media Id="1000" Cabinet="Inspect.cab">
            <PatchBaseline Id="SomeBaseLine" />
        </Media>
        <PatchFamily
              Id="SomeFamily"
              Version="1.0.1.0"
              ProductCode="<GUID>"
              Supersede="yes">

            <ComponentRef Id="ComponentsToPatch" />
        </PatchFamily>
    </Patch>
</Wix>
Run Code Online (Sandbox Code Playgroud)

wix visual-studio votive

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

如何将JAX-RS添加到现有项目

我正在使用Java EE,Java 1.7,glassfish 3和Eclipse Indigo。我有一个从本教程构建的现有Web项目:http : //www.tech-juice.org/2012/05/13/hello-world-with-jsf-2-0-glassfish-3-maven-svn -and-eclipse /#comment-10560。现在,我想将RESTful Web服务添加到项目中。我转到Project-> properties,Project Facets并检查JAX-RS。然后,我单击显示“需要进一步配置”的链接。我给一个servlet类名。现在,我被告知“必须至少选择一个用户库”。

这是什么意思?

我已经看过,但是没有看到有关将JAX-RS添加到现有项目的教程。

谢谢,斯科特

eclipse jax-rs java-ee

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