代码改变世界

Silverlight~数据相关的乱摘

2010-09-08 13:35  撞破南墙  阅读(759)  评论(1编辑  收藏  举报

1选择集合类 

考虑以下问题:

@1您是否需要一个序列列表,其中的元素通常在检索其值后被放弃

如果需要,则在需要先进先出 (FIFO) 行为时请考虑使用 Queue<T> 泛型类。在需要后进先出 (LIFO) 行为时请考虑使用 Stack<T> 泛型类。

如果不需要,请考虑使用其他集合。

@2是否需要以某种顺序访问元素,例如 FIFOLIFO 或随机访问

Queue<T> 泛型类提供 FIFO 访问。

Stack<T> 泛型类提供 LIFO 访问。

LinkedList<T> 泛型类允许从开头到末尾或从末尾到开头按顺序访问。

其余的集合提供随机访问。

@3是否需要通过索引访问每一元素?

List<T> 泛型类通过元素的从零开始的索引来访问零元素。

Dictionary<TKey, TValue> 泛型类通过元素的键来访问元素。

KeyedCollection<TKey, TItem> 泛型类通过元素的从零开始的索引或键来访问元素。

@3每一元素将包含一个值、一个键和一个值的组合还是一个键和多个值的组合?

一个值:使用任何基于 IList 接口或 IList<T> 泛型接口的集合。

一个键和一个值:使用任何基于 IDictionary 接口或 IDictionary<TKey, TValue> 泛型接口的集合。

带有嵌入的键的一个值:使用 KeyedCollection<TKey, TItem> 泛型类。

是否需要只接受字符串的集合?

 

2通过为泛型类型参数指定 String 类,可以将 System.Collections.Generic 命名空间中的任何泛型集合类用作强类型字符串集合。

数组集合类型
Array 类 

.列表集合类型
泛型 List<T>  

队列集合类型 

Queue<T> 泛型 

Enqueue 方法将元素添加到队列的末尾。

Dequeue 方法从队列的开头移除最旧的元素。

Peek 方法从队列的开头返回最旧的元素,但不将其从队列中移除。

字典集合类型 

 IDictionary  

堆栈集合类型 

Stack<T> 泛型类 

 

 

3何时使用泛型集合 

下面的列表汇总了要使用的重要泛型类型:

Collection<T> 是可以用作基类的泛型类。

ReadOnlyCollection<T> 类不是抽象的,它具有一个构造函数,该构造函数使其易于将现有的 List<T> 公开为只读集合。

List<T> 类允许指定您自己的用于排序和搜索列表的 IComparer<T> 泛型接口实现。

LinkedList<T> 是一个通用链接列表,它提供运算复杂度为 O(1) 的插入和移除操作。

KeyedCollection<TKey, TItem> 是介于列表和字典之间的混合类型,它提供了一种存储包含自己键的对象的方法。

Dictionary<TKey, TValue> 和 KeyedCollection<TKey, TItem> 类允许您指定自己的相等比较器。

 

4数据绑定 

若要获取绑定到 ItemsControl 的集合的更改通知,除了实现 INotifyPropertyChanged 外,还要实现INotifyCollectionChanged。 

使用数据批注自定义数据类   

 

5MSDN叫批注的使用,java叫做注解?

验证属性 

验证属性

说明

CustomValidationAttribute

使用自定义方法进行验证。

DataTypeAttribute

指定特定类型的数据,如电子邮件地址或电话号码。

EnumDataTypeAttribute

确保值存在于枚举中。

RangeAttribute

指定最小和最大约束。

RegularExpressionAttribute

使用正则表达式来确定有效的值。

RequiredAttribute

指定必须提供一个值。

StringLengthAttribute

指定最大和最小字符数。

ValidationAttribute

用作验证属性的基类。

 显示属性

显示属性

说明

DataTypeAttribute

指定特定类型的数据,如电子邮件地址或电话号码。

DisplayAttribute

为用户界面中使用的数据类型和成员指定可本地化的字符串。

DisplayColumnAttribute

当将表用作外键关系中的父表时,指定显示和排序属性。

DisplayFormatAttribute

指定如何显示数据字段以及如何设置数据字段的格式。

FilterUIHintAttribute

指定列的筛选行为。

UIHintAttribute

指定用于显示关联实体成员的控件和值。

 数据建模属性

数据建模属性

说明

AssociationAttribute

指定某个实体成员表示某种数据关系,如外键关系。

ConcurrencyCheckAttribute

指定某属性将参与开放式并发检查。

EditableAttribute

指定用户是否应能够更改实体属性的值。

KeyAttribute

指定一个或多个要用作实体的唯一标识的实体属性。

TimestampAttribute

将某个成员指定为数据版本控制的时间戳值。

 

 http://msdn.microsoft.com/zh-cn/library/dd901590(v=VS.95).aspx 

 

6对独立存储文件进行加密和签名  只是索引

System.Security.Cryptography 和 System.Security.Cryptography.X509Certificates 命名空间包含使您能够对文件进行加密或签名的类。在 Silverlight 中,主要的加密方案是对由基于 Silverlight 的应用程序使用的独立存储文件进行加密。

有关对独立存储文件进行加密和解密的完整示例,请参见 System.Security.Cryptography.AesManaged 类。

有关对独立存储文件进行签名和检查其签名的完整示例,请参见 System.Security.Cryptography.HMACSHA256 类。

有关 .NET Framework 中的加密概述,请参见 .NET Framework 文档中的 Cryptographic Services(加密服务)。

 

7使用 XmlReader 和 LINQ to XML 分析 XML 

XmlReader 是一种快速的、只进方式非缓存分析器。LINQ to XML 在 XmlReader 之上实现,并且这两者紧密集成。

通常,应该使用 XmlReader 读取大型文档,因为将大型文档加载到内存中的树状结构要占用大量内存空间,导致性能降低。

如果正在生成的系统分析的 XML 文档较小,则应利用 LINQ to XML 以提高效率。

 

8WCF 数据服务 (Silverlight) 

暂时不细看

http://msdn.microsoft.com/zh-cn/library/cc838234(v=VS.95).aspx