小编Nic*_*ick的帖子

为什么类型为s:s的XSD元素在生成服务引用时会成为字符串?

我正在尝试从WSDL创建一个新的服务引用,我希望所有的属性都是DateTime而不是string.

例如,联系人的xsd定义:

<s:complexType name="Contact">
    <s:sequence>
        <s:element minOccurs="0" maxOccurs="1" name="Address" type="tns:Address" />
        <s:element minOccurs="0" maxOccurs="1" name="Email" type="s:string" />
        ...
        <s:element minOccurs="1" maxOccurs="1" name="BirthDate" type="s:date" />
</s:sequence>
Run Code Online (Sandbox Code Playgroud)

BirthDate的类型是s:date,但生成的类型(在Reference.cs中)是一个字符串.

internal partial class Contact : object, IExtensibleDataObject, INotifyPropertyChanged
{
    [OptionalField]
    private MembershipMgmtMediator.Address AddressField;

    [OptionalField]
    private string EmailField;

    private string BirthDateField;
}
Run Code Online (Sandbox Code Playgroud)

如果我创建一个Web项目并将其添加为Web引用而不是服务引用,它将正确成为DateTime.我认为这与wsdl.exe和svcutil.exe在幕后工作的方式有关,但无论如何,我都在试图弄清楚如何正确地让Visual Studio认识到这个属性应该是一个DateTime.

xsd wsdl date service-reference svcutil.exe

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

标签 统计

date ×1

service-reference ×1

svcutil.exe ×1

wsdl ×1

xsd ×1