DefaultValue
某些方法具有复杂的签名。例如,用于获取 SAP 客户的 Web 服务可能使用六个参数,其中三个的结构中还可能带有子参数。为了便于调用这些方法,可通过业务数据目录指定元数据的参数的默认值。这样,用户可以调用预定于业务逻辑,而不需要进行参数构建。
用户可覆盖用于定义 DefaultValue 的任何输入参数。如果该参数不是可选的,则用户必须指定不具有 DefaultValue 的输入参数。
对于 TypeDescriptor 对象中的每个抽象基元,您可以定义多个默认值,每个默认值与特定 MethodInstance 对象对应。在运行时,根据客户端在不同 MethodInstance 对象上执行的情况,某个参数将基于对应默认值进行实例化。
Working with Nullable Types
在设置 System.Nullable 和 TypeDescriptor 对象的 DefaultValue 时,请勿将 DefaultValue 的类型设置成 System.Nullable。如果不设置默认值,则业务数据目录将插入 NULL;如果设置了默认值,则传递具体的默认值。
Good example
<Parameter Name="1" Direction="In">
<TypeDescriptor Name="X" TypeName="System.Nullable[[LobService.BugEnumTest, PSBugWS]]" AssociatedFilter="test">
<DefaultValues>
<DefaultValue MethodInstanceName="Finder" Type="LobService.BugEnumTest, PSBugWS">Two</DefaultValue>
</DefaultValues>
</TypeDescriptor>
</Parameter>
Bad example
<Parameter Name="1" Direction="In">
<TypeDescriptor Name="X" TypeName="System.Nullable[[LobService.BugEnumTest, PSBugWS]]" AssociatedFilter="test">
<DefaultValues>
<DefaultValue MethodInstanceName="Finder" Type="System.Nullable[[LobService.BugEnumTest, PSBugWS]]">Two</DefaultValue>
</DefaultValues>
</TypeDescriptor>
</Parameter>
示例
<DefaultValues>
<DefaultValue MethodInstanceName="ProductFinderInstance"
Type="System.Int32">0</DefaultValue>
</DefaultValues>
架构
子级 |
类型 |
出现规律 |
默认值 |
限制/接受的值 |
说明 |
---|---|---|---|---|---|
#text |
文本 |
1..1 |
最小长度:1 |
默认值。 如果类型是 DateTime,该值是格式为 DateTimeFormatInfo.UniversalSortableDateTimePattern 的字符串值。 如果类型为 Enum 的类,则该值是代表枚举值的字符串。 如果类型为 GUID,则该值的格式是 XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX。 如果类型为“基元”(Int16、Int32、Int64、Single、Double、Decimal、Boolean、String 和 Byte 等),该值为代表类型的字符串(我们使用 XmlReader.ReadElementContentAsString()。) 如果类型为任何其他序列化类型,则值为二进制格式的 Base64 编码字符串。 |
|
MethodInstanceName |
属性 (String) |
1..1 |
此 DefaultValue 应用的 MethodInstance 的名称。 |
||
Type |
属性(System.String) |
1..1 |
System.Int16 System.Int32 System.Int64 System.Single System.Double System.Decimal System.Boolean System.String System.Byte System.UInt16 System.UInt32 System.UInt64 System.Guid System.String System.DateTime 任何其他序列化类型(如其中的 Type.IsSerializable == true) |
默认值的类型。 |
See Also
任务
AdventureWorks SQL Server 2000 示例