以下是类图(有一个方法很长,只显示了部分输入参数)
这个文件的作用是为一些设置文件提供一些属性,从代码中可以看出,大部分方法和属性都是虚拟的,这样可以供其它类继承它。
下面对其中的几个成员作简单的分析:
1. Attributes属性
private SettingsAttributeDictionary _Attributes;
public virtual SettingsAttributeDictionary Attributes
{
get
{
return this._Attributes;
}
}
public virtual SettingsAttributeDictionary Attributes
{
get
{
return this._Attributes;
}
}
这里面用到一个类SettingsAttributeDictionary,我们看看它的代码:
using System;
using System.Collections;
[Serializable]
public class SettingsAttributeDictionary : Hashtable
{
public SettingsAttributeDictionary()
{
}
public SettingsAttributeDictionary(SettingsAttributeDictionary attributes) : base(attributes)
{
}
}
using System.Collections;
[Serializable]
public class SettingsAttributeDictionary : Hashtable
{
public SettingsAttributeDictionary()
{
}
public SettingsAttributeDictionary(SettingsAttributeDictionary attributes) : base(attributes)
{
}
}
从代码可以看出,SettingsAttributeDictionary类其实就是一个Hashtable。
那么Attributes属性的作用就很明显了,就是把一些属性的key-value列表。
2. DefaultValue属性
private object _DefaultValue;
public virtual object DefaultValue
{
get
{
return this._DefaultValue;
}
set
{
this._DefaultValue = value;
}
}
public virtual object DefaultValue
{
get
{
return this._DefaultValue;
}
set
{
this._DefaultValue = value;
}
}
这个属性是object类型的,应该是设置该类的默认值,具体用法还不是很清楚,需要研究调用它的代码才知道,等以后研究到调用该属性的代码时,这部分再补充上。
3. IsReadOnly属性
private bool _IsReadOnly;
public virtual bool IsReadOnly
{
get
{
return this._IsReadOnly;
}
set
{
this._IsReadOnly = value;
}
}
public virtual bool IsReadOnly
{
get
{
return this._IsReadOnly;
}
set
{
this._IsReadOnly = value;
}
}
这个属性应该是设置这个类的实例是否可读,具体用法还不是很清楚。等以后研究到调用该属性的代码时,这部分再补充上。
4. Name属性
private string _Name;
public virtual string Name
{
get
{
return this._Name;
}
set
{
this._Name = value;
}
}
public virtual string Name
{
get
{
return this._Name;
}
set
{
this._Name = value;
}
}
标志该类实例的名称。不再赘述
5. PropertyType属性
private Type _PropertyType;
public virtual Type PropertyType
{
get
{
return this._PropertyType;
}
set
{
this._PropertyType = value;
}
}
public virtual Type PropertyType
{
get
{
return this._PropertyType;
}
set
{
this._PropertyType = value;
}
}
这个属性让我很迷惑,不知道它到底有什么用,等以后研究到调用该属性的代码时,这部分再补充上。
6. Provider属性
private SettingsProvider _Provider;
public virtual SettingsProvider Provider
{
get
{
return this._Provider;
}
set
{
this._Provider = value;
}
}
public virtual SettingsProvider Provider
{
get
{
return this._Provider;
}
set
{
this._Provider = value;
}
}
这个属性是指定操作该类的DataProvider,我们看一下与SettingsProvider相关联的类:
在上图中,SettingProvider派生出ProfileProvider, 用来进行与Profile相关的数据库操作。ProfileProvider是一个抽象类,里面并没有操作数据库,只是定义了几个虚方法。SqlProfileProvider继承了ProfileProvider,对Sql Server进行操作。
7. SerializeAs属性
private SettingsSerializeAs _SerializeAs;
public virtual SettingsSerializeAs SerializeAs
{
get
{
return this._SerializeAs;
}
set
{
this._SerializeAs = value;
}
}
public virtual SettingsSerializeAs SerializeAs
{
get
{
return this._SerializeAs;
}
set
{
this._SerializeAs = value;
}
}
指示该类被序列化成什么格式,有如下的选择:
public enum SettingsSerializeAs
{
String,
Xml,
Binary,
ProviderSpecific
}
{
String,
Xml,
Binary,
ProviderSpecific
}
8. ThrowOnErrorSerializing
private bool _ThrowOnErrorSerializing;
public bool ThrowOnErrorSerializing
{
get
{
return this._ThrowOnErrorSerializing;
}
set
{
this._ThrowOnErrorSerializing = value;
}
}
public bool ThrowOnErrorSerializing
{
get
{
return this._ThrowOnErrorSerializing;
}
set
{
this._ThrowOnErrorSerializing = value;
}
}
指示在序列化失败以后是否抛出错误
9. ThrowOnErrorDeserializing属性
private bool _ThrowOnErrorDeserializing;
public bool ThrowOnErrorSerializing
{
get
{
return this._ThrowOnErrorSerializing;
}
set
{
this._ThrowOnErrorSerializing = value;
}
}
public bool ThrowOnErrorSerializing
{
get
{
return this._ThrowOnErrorSerializing;
}
set
{
this._ThrowOnErrorSerializing = value;
}
}
指示在反序列化失败以后是否抛出错误





}
}
浙公网安备 33010602011771号