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 示例

如何:初步使用运行时对象模型

如何:管理对象模型使用入门

概念

常见问题解答:业务数据目录

业务数据目录:术语表