4

我认为 PropertyValuesString 用于通常是这些类型对象的键值对的值部分。但是,如果您已经将值放入 PropertyValuesString,那么 PropertyValuesBinary 字段会出现在哪里?

这两个字段都是不可为空的,所以我需要在每个字段中添加一些内容。两者有什么区别,我应该在里面放什么?

另外,我想知道为什么它是复数 - PropertyValue s - 对整个键值对的事情没有真正意义,我认为一个属性应该有一个值。

4

1 回答 1

9

SqlProfileProvider 在 aspnet_Profile 表的三个字段中保留配置文件属性:PropertyNames、PropertyValuesString 和 PropertyValuesBinary。以下是每个字段中存储的内容的概要:

  • PropertyNames 包含一个字符串值,其中包含有关 PropertyValuesString 和 PropertyValuesBinary 字段中存在的配置文件属性值的信息。该字符串包含一个以冒号分隔的项目列表;每一项表示一个属性值,编码格式如下:Name:B|S:StartPos:Length

    • Name 是属性值的名称。
    • 第二个参数是 B(表示“二进制”)或 S(表示“字符串”),表示对应的属性值是存储在PropertyValuesString字段 (S) 还是PropertyValuesBinary字段 (B) 中。
    • StartPos 和 Length 分别表示这些字段中相应属性值的起始位置(从 0 开始)和数据的长度。长度为 -1 表示该属性是一个引用类型,并且它的值为 null。
  • PropertyValuesString将配置文件属性值存储为字符串。这包括由 .NET Framework 的 XML 序列化程序序列化的属性值,以及使用字符串类型转换器序列化的属性值。PropertyNames 字段中的“S”值包含将PropertyValuesString分解为单个属性值所需的偏移量和长度。

  • PropertyValuesBinary 以二进制格式存储配置文件属性值,即使用 .NET Framework 的二进制序列化程序序列化的配置文件属性。PropertyNames 字段中的“B”值包含将PropertyValuesBinary分解为单个属性值所需的偏移量和长度。

请注意,配置文件提供者不需要以这种格式或任何其他格式保存数据。存储配置文件数据的格式由编写提供程序的人自行决定。

更多信息的原始链接:http: //msdn.microsoft.com/en-us/library/aa478953.aspx 希望这会有所帮助。

于 2009-12-23T16:28:35.690 回答