小编dav*_*ine的帖子

自定义日期时间 XML 序列化

我希望能够使用既不是服务器也不是客户端时间的特定时区序列化 DateTime。基本上,任何时区。是否可以在 .Net2.0 网络服务中覆盖 DateTime 序列化?

我使用 xsd.exe 编译了一个 xmlschema,所以我尝试使用 XmlSchemaImporter。

OnSerialize 示例显示值更改,但不显示输出格式的更改。

XmlSchemaImporter,将其加载到 gac 中,运行 xsd.exe,并生成具有我想要的类的代码......但该类是一个属性,最终无法反映。

[InvalidOperationException:无法序列化 Cuahsi.XmlOverrides.W3CDateTime 类型的成员“metadataDateTime”。XmlAttribute/XmlText 不能用于编码复杂类型。]

生成的代码

[System.Xml.Serialization.XmlAttributeAttribute()]
public Cuahsi.XmlOverrides.W3CDateTime dateTime {
    get {
        return this.dateTimeField;
    }
    set {
        this.dateTimeField = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

XmlSchema 导入器

public class ImportW3CTime : 
  System.Xml.Serialization.Advanced.SchemaImporterExtension
{
    public override string ImportSchemaType(string name, string ns,
        XmlSchemaObject context, XmlSchemas schemas,
        XmlSchemaImporter importer, CodeCompileUnit compileUnit, 
        CodeNamespace mainNamespace, CodeGenerationOptions options,
        CodeDomProvider codeProvider)
    {
        if (XmlSchema.Namespace == ns)
        {
            switch (name)
            {
                case "dateTime":
                    string …
Run Code Online (Sandbox Code Playgroud)

c# web-services xml-serialization asmx .net-2.0

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

如何序列化为日期时间

努力获取任何时区的日期时间。我使用 DateTimeOffset、字符串和 XmlElement 属性。当我这样做时,我收到以下错误:

[InvalidOperationException:“dateTime”对于 XmlElementAttribute.DataType 属性来说是无效值。dateTime 无法转换为 System.String。]
System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel model、String ns、ImportContext context、String dataType、XmlAttributes a、布尔重复、布尔 openModel、RecursionLimiter 限制器) +450

[InvalidOperationException:反射类型“System.String”时发生错误。]
System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel 模型、String ns、ImportContext 上下文、String dataType、XmlAttributes a、布尔重复、布尔 openModel、RecursionLimiter 限制器) +1621
System.Xml.Serialization.XmlReflectionImporter.ImportAccessorMapping(MemberMapping 访问器、FieldModel 模型、XmlAttributes a、String ns、类型 choiceIdentifierType、布尔 rpc、布尔 openModel、RecursionLimiter 限制器) +8750
System.Xml.Serialization.XmlReflectionImporter.ImportFieldMapping(StructModel 父级) 、FieldModel 模型、XmlAttributes a、String ns、RecursionLimiter 限制器)+139
System.Xml.Serialization.XmlReflectionImporter.InitializeStructMembers(StructMapping 映射、StructModel 模型、布尔 openModel、String typeName、RecursionLimiter 限制器)+1273

[InvalidOperationException:反映属性“creationTimeX”时发生错误。] ...

代码:

 [System.Xml.Serialization.XmlElement(ElementName = "creationTime",
      DataType="dateTime")]
 public string creationTimeX
    {
        get
        {
            return this.creationTimeField.ToString("yyyy-MM-ddTHH:mm:sszzz");
        }
        set
        {
            DateTimeOffset.TryParse(value, out this.creationTimeField);
        }
    }

[System.Xml.Serialization.XmlIgnoreAttribute()]
public System.DateTimeOffset creationTime
{
    get …
Run Code Online (Sandbox Code Playgroud)

c# datetime xml-serialization .net-2.0

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

Jetbrains PyCharm与热情的机盖

新来Python,我一直在尝试不同的IDE和Python分布。到目前为止,我已经使用了Jetbrains IDE,并且似乎是所有这些中最成熟的IDE。

项目中的人员喜欢科学发行版(Continent IO和Enthought)。我倾向于Enthought,因为这些netCDF库针对所有平台打包。

想知道将Canvas中的PyCharm引入Python环境的诀窍是什么?同时使用Mac和Windows。

尝试了此处列出的路径:https : //support.enthought.com/entries/23646538-Make-Canopy-s-Python-be-your-default-Python-ie-on-the-PATH-

但对话框显示,这pyvenv.cfg不是正确的Python SDK。还尝试Python.exe了scripts目录中的。

enthought pycharm canopy

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