相关疑难解决方法(0)

如何防止在WCF客户端中生成"指定"属性?

我有两个使用VS2008构建的.NET 3.5 WCF服务.

我在Silverlight中有两个WCF客户端来使用这些服务.使用"添加服务引用"生成客户端.我正在使用Silverlight 4.

其中一个代理是使用Specified每个属性的属性生成的.这是我的服务方法的'message-in'类:

    // properties are generated for each of these fields
    private long customerProfileIdField;        
    private bool customerProfileIdFieldSpecified;        
    private bool testEnvField;        
    private bool testEnvFieldSpecified;
Run Code Online (Sandbox Code Playgroud)

现在我的其他服务(仍然使用Silverlight客户端)不会生成Specified属性.

现在我不关心"良好SOA的原则".我只是想摆脱这些该死的属性,因为在我正在做的事情中我绝对讨厌它们.

两种服务之间必须有一些区别 - 但我不想完全撕掉它们以找出差异.

一个类似的问题之前有一个答案' 你不能这样做 ' - 这绝对不是真的,因为我有它 - 我只是不知道我做了什么不同.

编辑:我现在处于这样的情况:我将Silverlight 4代理重新生成到我的3.5 WCF服务(全部在同一个localhost机器上),有时我会获得"指定"属性,有时我不会.我不再认为(我最初怀疑)这仅仅是由于某些端点配置或服务级别[属性].消息本身中的某些触发器会导致生成(或不生成)Specified.可能涉及许多因素,或者可能是非常简单的因素.

silverlight wcf wcf-proxy

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

WCF服务方法参数,bool指定

可能重复:
WCF不会返回int

尝试使用我自己的WCF服务,如下所示:

[ServiceContract]
public interface IReturnService
{
    [OperationContract]
    bool GetTransactionList(int lRetailStoreID, int lWorkstationNmbr, int lTaNmbr);
}
Run Code Online (Sandbox Code Playgroud)

但是当我从客户端调用服务时,我得到的错误是没有GetTransactionList带3个参数的方法,而是得到这个标题:

myWCF.GetTransactionList(int lRetailStoreID, bool lRetailStoreIDSpecified, 
                         int lWorkstationNmbr, bool lWorkstationNmbrSpecified, 
                         int lTaNmbr, bool lTaNmbrSpecified, 
                         out bool GetTransactionListResult, 
                         out bool GetTransactionListResultSpecified)
Run Code Online (Sandbox Code Playgroud)

任何人都知道为什么会发生这种情况以及如何解决它?如果需要更多信息,请与我们联系.

c# wcf

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

C#bool变量始终为false/Datetime变量始终为WCF Web Service中的DateTime.Min

我对WCF Web服务很陌生,直到现在我使用.asmx Web服务,我从来没有遇到类似的问题.

我有一个类Attachement,我用它来保存网站上的一些附件.

[DataContract]
public class Attachement
{
    private string _Name;
    [Column]
    [DataMember(Order = 1)]
    public string Name
    {
        get { return _Name; }
        set { _Name = value; }
    }
    .
    .
    .
    private bool _IsNew;
    [DataMember(Order = 6)]
    public bool IsNew
    {
        get { return _IsNew; }
        set { _IsNew = value; }
    }...
Run Code Online (Sandbox Code Playgroud)

问题是当我向WCF服务发出一些请求时,字段IsNew总是为False,即使我确定我在请求集中将它发送给True.与DateTime字段相同的问题 - 我使用值<> DateTime.Min发送它,但在Web服务中,我总是将此字段与DateTime.Min相等.

我可以使用字符串而不是bool和DateTime来解决这个问题,但是我无法解析这种类型的变量真的很烦人.

我究竟做错了什么?

c# asp.net wcf web-services boolean

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

标签 统计

wcf ×3

c# ×2

asp.net ×1

boolean ×1

silverlight ×1

wcf-proxy ×1

web-services ×1