如何:为返回数据集的 Web 方法建模
此示例演示了如何为返回具有一个表和三个列的数据集的 Web 方法建模。
注意 从 Web 方法返回数据集并不是一个好的做法。问题在于当您返回数据集时,使用者需要知道基本结构,因为他们无法从 WSDL 推断出基本结构。您还需要确保由 Web 方法返回的数据集内部结构不会改变;如果内部结构改变,业务数据目录元数据的作者可能需要重新编写应用程序定义。
示例
<Entity Name="Customer">
<Identifiers>
<Identifier Name="CustomerName" TypeName="System.String" />
</Identifiers>
<Methods>
<Method Name="GetCustomers">
<Parameters>
<Parameter Direction="In" Name="language">
<TypeDescriptor TypeName="System.String" Name="language">
<DefaultValues>
<DefaultValue MethodInstanceName="CustomerSpecificFinderInstance" Type="System.String">en-us</DefaultValue>
<DefaultValue MethodInstanceName="CustomerFinderInstance" Type="System.String">en-us</DefaultValue>
</DefaultValues>
</TypeDescriptor>
</Parameter>
<Parameter Direction="Return" Name="GetCustomersResult">
<TypeDescriptor TypeName="Catalogs.ServiceDataSetContract, Catalogs" Name="GetCustomersResult">
<TypeDescriptors>
<TypeDescriptor TypeName="System.Data.DataSet, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Value">
<TypeDescriptors>
<TypeDescriptor TypeName="System.Data.DataTableCollection, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Tables" IsCollection="true">
<TypeDescriptors>
<TypeDescriptor TypeName="System.Data.DataTable, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Categories">
<TypeDescriptors>
<TypeDescriptor TypeName="System.Data.DataRowCollection, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Rows" IsCollection="true">
<TypeDescriptors>
<TypeDescriptor TypeName="System.Data.DataRow, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Categories">
<TypeDescriptors>
<TypeDescriptor TypeName="System.String" IdentifierName="CustomerName" Name="CustomerName" >
<LocalizedDisplayNames>
<LocalizedDisplayName LCID="1033">CustomerName</LocalizedDisplayName>
</LocalizedDisplayNames>
</TypeDescriptor>
<TypeDescriptor TypeName="System.String" Name="DisplayName" >
<LocalizedDisplayNames>
<LocalizedDisplayName LCID="1033">Name</LocalizedDisplayName>
</LocalizedDisplayNames>
</TypeDescriptor>
</TypeDescriptors>
</TypeDescriptor>
</TypeDescriptors>
</TypeDescriptor>
</TypeDescriptors>
</TypeDescriptor>
</TypeDescriptors>
</TypeDescriptor>
</TypeDescriptors>
</TypeDescriptor>
</TypeDescriptors>
</TypeDescriptor>
</Parameter>
</Parameters>
<MethodInstances>
<MethodInstance Type="Finder" ReturnParameterName="GetCustomersResult"
ReturnTypeDescriptorName="GetCustomersResult"
ReturnTypeDescriptorLevel="0" Name="CustomerFinderInstance" />
<MethodInstance Type="SpecificFinder"
ReturnParameterName="GetCustomersResult"
ReturnTypeDescriptorName="GetCustomersResult"
ReturnTypeDescriptorLevel="0" Name="CustomerSpecificFinderInstance" />
</MethodInstances>
</Method>
</Methods>
</Entity>