Microsoft.ScalableHosting.Profile.SettingsProperty的源代码

以下是类图(有一个方法很长,只显示了部分输入参数)

 


这个文件的作用是为一些设置文件提供一些属性,从代码中可以看出,大部分方法和属性都是虚拟的,这样可以供其它类继承它。

下面对其中的几个成员作简单的分析:


1. Attributes属性

        private SettingsAttributeDictionary _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)
        {
        }

    }

从代码可以看出,SettingsAttributeDictionary类其实就是一个Hashtable。
那么Attributes属性的作用就很明显了,就是把一些属性的key-value列表。

2. DefaultValue属性

        private object _DefaultValue;

        
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;
            }
        }

这个属性应该是设置这个类的实例是否可读,具体用法还不是很清楚。等以后研究到调用该属性的代码时,这部分再补充上。



4. Name属性

        private string _Name;

        
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;
            }
        }

这个属性让我很迷惑,不知道它到底有什么用,等以后研究到调用该属性的代码时,这部分再补充上



6. Provider属性

        private SettingsProvider _Provider;

        
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 enum SettingsSerializeAs
    {
        String,
        Xml,
        Binary,
        ProviderSpecific
    }


8. ThrowOnErrorSerializing

          private bool _ThrowOnErrorSerializing;

         
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;
            }
        }

指示在反序列化失败以后是否抛出错误


posted on 2006-04-26 15:29  今夜太冷  阅读(359)  评论(0)    收藏  举报