" 1"切换到" \ 0"

时间:2014-12-09 15:56:20

标签: c# .net web-services wcf

我们的系统中存在最奇怪的问题,其中" 1"被改为" / 0"。我们的应用是基于服务。 Wcf Web服务。我们呼吁服务A来获取一些数据。该服务调用服务B,服务B抓取数据并返回它。服务A只是将其映射到新对象并将其返回给初始调用者。我可以直接呼叫服务B并且数据很好,但是通过服务A,如果某个字符串字段是" 1"它回来了" \ 0"。这个星期四随机开始。代码肯定没有更新,没有人认为有任何更新到服务器这些都运行。

这里来自服务A的代码。当变量prog的CType为" 1"此方法返回的ProgramDTO包含一个" \ 0"

的CType
 public ProgramDTO GetCProgram(string clId, int cType)
    {
        try
        {
            using (var clientChannel = (IClientChannel)cSpecsFactory.CreateChannel())
            {
                var client = (ICSpecs)clientChannel;
                var prog = client.GetCProgram(clId, cType);
                return ToDomainModel(prog);
            }
        }
        catch (Exception ex)
        {
            logger.Error("Error getting programs.", ex);
            return null;
        }
    }

  private ProgramDTO ToDomainModel(CProgramDTO c)
    {
        try
        {
            return new ProgramDTO
                    {
                        CType = c.CType,
                        ClID = c.ClId,
                        IsET = c.IsET,
                        PreviewImage = c.Image,
                        CId = c.CId,

                    };
        }
        catch (Exception ex)
        {
            logger.Error(string.Format("Error converting to domain model."), ex);
            return null;
        }
    }

public class ProgramDTO
{

    [DataMember]
    public string ClID { get; set; }
    [DataMember]
    public string CType { get; set; }
    [DataMember]
    public bool IsET { get; set; }
    [DataMember]
    public byte[] PreviewImage { get; set; }
    [DataMember]
    public long CId { get; set; }


}

我能想到的唯一不同的是,当服务B获取这些数据时,它是一个int,我们将其转换为字符串。

CType = cProgram.CType.ToString(CultureInfo.InvariantCulture) 

我们在其他任何地方都没有使用CultureInfo.InvariantCulture,但没有别的(至少6,50和51没问题)有问题,当它从这些服务返回时它仍然看起来没问题。

0 个答案:

没有答案