小编Jay*_*oot的帖子

Xsd.exe或Svcutil.exe将XSD架构转换为类

是否建议使用svcutil工具而不是xsd工具?我没有看到这是一个确认的声明,但它确实如此.我对此感到困惑的原因是我使用这两个工具生成了一个类.但是,我使用xsd获得了更好的课程.XSD架构仅由DataContracts组成.

我对svcutil使用了以下命令:

svcutil path-to\xyz.xsd /language:C# /dataContractOnly /importxmltypes /out:path-to\class.cs
Run Code Online (Sandbox Code Playgroud)

这产生了所需的类.但是,它只包含字段的XmlNode []对象.

然后,我对xsd使用了以下命令:

xsd.exe /c path-to\xyz.xsd /out:path-to\class.cs
Run Code Online (Sandbox Code Playgroud)

它产生了比svcutil更好的类.大多数字段都按需转换.

我有理由相信我应该在xsd上使用svcutil吗?

c# xml xsd svcutil.exe

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

react-router在更改路由之前不等待动画

这里有一个示例jsfiddle来演示我的问题.

HelloWorld链接会更改路线.动画在离开时已应用于Hello路由.实际上,转换的设置使得当Hello页面离开时,它会要求子组件<h1>在其自身中进行动画处理componentWillLeave,从而完成可以快速卸载的页面.我这样做是因为在我的真实应用程序中,当Hello页面离开时,其子组件需要以不同的方式进行动画处理 - 因此它不是整页的单个转换.

要查看问题,请单击Hello to load Hellopage.然后单击该页面的World链接World.World即使Hello是动画,您也会看到页面已加载.

那么我该如何World等待动画完成呢?我想要确认的另一件事是,在父组件离开之前我用来使子组件动画的方法是否正确.

作为参考,我在master分支中使用最新的react-router:1.0b4

transition reactjs react-router

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

通用DAO模式实现设计

我正在开发一个GWT + Hibernate项目.它由各种模块组成,其中我将命名为两个 - 公司和登录.对于每个模块,我已经创建了一个RPC服务,这样项目就不会有一个像神一样的服务来完成所有事情.

为了与数据库进行交互,我使用了Hibernate API - 具体来说,是POJO中的EntityManager和Annotations.

另外,我创建了一个Generic DAO类来处理基本的CRUD操作.GenericDAO类也将处理EntityManager.每个模块服务类都将扩展此GenericDAO,以便它可以添加自己的查询方法.

以下是GenericDAO类的存根 -

public class GenericDataAccessService<EntityType, PrimaryKeyType extends Serializable> {

    // Constructor

    @Override
    public void save(EntityType newEntity) {
        // TODO Auto-generated method stub
    }

    @Override
    public void update(EntityType entity) {
        // TODO Auto-generated method stub

    }

    @Override
    public EntityType find(PrimaryKeyType primaryKey) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public List<EntityType> findByProperty(String property) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public List<EntityType> findAll() {
        // …
Run Code Online (Sandbox Code Playgroud)

gwt design-patterns hibernate genericdao

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

避免循环依赖

我正在开发旅行管理应用程序.有问题的设计如下:

旅游中的每个人都被指定为旅行者.每位旅行者都有护照.现在,旅行者可以是主会员或子会员,具体取决于他是否是家庭主管.MainMember决定像TourPackage这样的东西,他的旅行家庭的总金额等.一个SubMember在旅行时依赖于MainMember.因此,如果删除了MainMember,则还必须删除其所有子成员.

所以,旅行者有护照.(一对一关系)旅行者是主会员或子会员.(Traveler-MainMember和Traveler-SubMember之间的一对一/一)MainMember可能有几个SubMembers.(一对多)子成员只有一个主要成员.(多到一个)

我目前的ERD如下.

旅行者ER图

如您所见,三个表 - Traveler,MainMember和SubMember - 形成了循环依赖.不过,我不确定它是否会伤害我的应用程序.如果我删除作为MainMember的Traveler,则1.删除Traveler中的记录.2.删除其相关的MainMember记录.3.删除依赖于MainMember的SubMember记录.4.删除子成员的旅行者记录.

虽然它似乎不是问题,但由于Traveler-MainMember删除将始终只删除Traveler-SubMember(s).不过,我对此感觉不好.

任何人都可以指导我更好的设计吗?

更新 -

在等待回复的同时,我根据@ Daveo的回复提出了另一种设计.基本上,Traveler包含自引用外键.SubMember记录将使用它来识别他们的父母.

这是ERD.

ERD与自我参考表

现在,正如@Branko指出的那样,我之前的设计中没有循环依赖问题,我想知道哪种设计更好?

另外,通过Hibernate实现哪种设计会更好?我认为第二种方法可能会在通过Hibernate实现时导致复杂性.

我还要感谢关于您喜欢的设计的实现模式(Hibernate实体中的继承等)的一些指示.

database-design erd circular-dependency hibernate-mapping class-table-inheritance

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

响应中发送二进制数据的最有效方式(时间和空间)

我的设置是基于Flask的服务器。该项目的鸟瞰图是:基于Flask的服务器基于一些算法计算(例如找出要从S3提取的文件名)从AWS S3提取二进制数据,并将数据提供给HTML + JavaScript客户端。

起初,我认为JSON对象是最好的响应类型。我创建了以下格式的JSON响应(可能在语法上不正确):

{
  'payload': [
    {
      'symbol': 'sym',
      'exchange': 'exch',
      'headerfile': {
        'name': '#name',
        'content': '#binarycontent'
      },
      'datafiles': [
        {
          'name': '#name',
          'content': '#binarycontent'
        },
        {
          'name': '#name',
          'content': '#binarycontent'
        }
      ]
    },
    'errors': [ //errors ]
}
Run Code Online (Sandbox Code Playgroud)

对于JSON中的任何语法错误,我深表歉意。我有点想找出一个小错误。在构造了此JSON之后,我知道JSON本身并不支持二进制数据。因此,我将无法将二进制数据作为值嵌入JSON中。

我意识到,我始终可以将字节转换为base64编码的字符串,并将该字符串用作JSON中的值。但是,结果字符串的大小要多出30%左右。4010字节的数据被编码为5348字节,虽然对于单个二进制块来说微不足道,但是当我将大量此类二进制块嵌入JSON响应时,我的客户将其视为一个问题。由于尺寸较大,响应需要更多时间才能到达客户,这是我客户的应用程序的关键问题。

我考虑的另一种选择是将二进制块流式传输octet-stream Content-Type到客户端。但是我不确定它是否比上述解决方案更好。此外,在这种情况下,我还无法弄清楚如何关联二进制块及其名称。

有没有比“将二进制文件转换为文本并嵌入JSON”更好的解决方案?

python json amazon-s3 binary-data flask

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

无法拆分看似编码的字符串

在解析Web请求中的数据时,我遇到了以下字符串 -

dateRange = 'September\xa04,\xa01978 – September 1980'
Run Code Online (Sandbox Code Playgroud)

提取的字符串的编码似乎是Latin-1(基于\xa0).我通过用空格替换代码来摆脱它.

dateRange = dateRange.replace(u'\xa0', u' ')
Run Code Online (Sandbox Code Playgroud)

保持这一点,我不能在连字符( - )上分割字符串.

当我调用split()时如下:

print(dateRange.split('-'))
Run Code Online (Sandbox Code Playgroud)

输出如下:

['September\xa04,\xa01978 – September 1980']
Run Code Online (Sandbox Code Playgroud)

就好像字符串中没有连字符一样.我觉得它与编码有关,但我似乎无法完全理解这个问题.

那么,如何解决这个问题呢?

编辑:

我已经尝试了以下无济于事:

dateRange.split('\-')
Run Code Online (Sandbox Code Playgroud)

python unicode encoding latin1

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

从HttpWebRequest请求的网页中省略图像

我提取网页以便将数据提供给我的应用程序.但是,这些页面包含许多我根本不需要的图像.我只需要文本数据.我的问题是网络请求花费了不可接受的时间.我认为这些图片也是在网络请求期间获取的.有没有办法消除图像并只下载文本数据?

以下是我目前使用的代码.

        var httpWebRequest = HttpWebRequest.Create(url) as HttpWebRequest;
        httpWebRequest.Method = "GET";
        httpWebRequest.ProtocolVersion = HttpVersion.Version11;
        httpWebRequest.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate");
        httpWebRequest.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
        httpWebRequest.Proxy = null;
        httpWebRequest.KeepAlive = true;
        httpWebRequest.Accept = "text/html";

        string responseString = null;
        var httpWebResponse = httpWebRequest.GetResponse() as HttpWebResponse;

        using (var responseStream = httpWebResponse.GetResponseStream())
        {
            using (var streamReader = new StreamReader(responseStream))
            {
                responseString = streamReader.ReadToEnd();
            }
        }
Run Code Online (Sandbox Code Playgroud)

此外,欢迎任何其他优化建议.

.net c# httpwebrequest http-headers

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