• 抽象配置工厂


      秉承一天写一篇的精神...今天的我又来了.....什么??前面有一天两天漏了??  哦..那天水浸啦...
    写的虽然不是很多旷世巨作,不也相信也不是什么很垃圾的东西..比较都是些程序的积累...经验吧...

    今天要现的是抽象配置工厂的实现
    配置的实现:
        public class ProvidersHanders : IConfigurationSectionHandler
        
    {
            
    IConfigurationSectionHandler 成员
        }


    实现configurationsectionhandler接口

        [Serializable()]
        [XmlRoot(
    "ProvidersConfig")]
        
    public class ProvidersConfiguration
        
    {
            
    private ProvidersCollection providers;
            
    private static yansCache cache = yansCache.Instance;

            
    public ProvidersCollection Providers
            
    {
                
    get return providers; }
                
    set { providers = value; }
            }


            
    public static ProvidersConfiguration GetConfig
            
    {
                
    get
                
    {
                    
    if (null == cache["ProvidersConfig"])
                    
    {
                        cache.Max(
    "ProvidersConfig", ConfigurationManager.GetSection("ProvidersConfig"));
                    }

                    
    return (ProvidersConfiguration)cache["ProvidersConfig"];
                }

            }


            
    public static Type GetTypeByProviderName(string ProviderName)
            
    {
                
    foreach (SingleProvider sp in GetConfig.Providers)
                
    {
                    
    if (sp.ProviderName == ProviderName)
                    
    {
                        
    return Type.GetType(sp.Type);
                    }

                }

                
    throw new ArgumentNullException("找不到类型:" + ProviderName);
                
    return null;
            }


        }


    配置读取

        [Serializable()]
        
    public class ProvidersCollection : CollectionBase
        
    {
            
    public virtual void Add(SingleProvider p)
            
    {
                InnerList.Add(p);
            }


            
    public SingleProvider this[int index]
            
    {
                
    get return (SingleProvider)InnerList[index]; }
                
    set { InnerList[index] = value; }
            }

        }

    配置集合

        [Serializable()]
        
    public class SingleProvider
        
    {
            
    private string type;
            
    public string Type
            
    {
                
    get return type; }
                
    set { type = value; }
            }


            
    private string providerName;
            
    public string ProviderName
            
    {
                
    get return providerName; }
                
    set { providerName = value; }
            }

        }

    单条配置

      <configSections>
        
    <section name="ProvidersConfig" type="yansComponents.Handlers.ProvidersHanders, yansComponents"/>
      
    </configSections>

    配置文件配置信息

    /// <summary>
        
    /// Providers模式父类
        
    /// </summary>
        
    /// <typeparam name="T"></typeparam>

        public class BaseAbstract<T>
        
    {

            
    根据类型获取实例


            
    /// <summary>
            
    /// 获得实例
            
    /// </summary>

            public static T Instance
            
    {
                
    get
                
    {
                    
    return getInstance(ProvidersConfiguration.GetTypeByProviderName(typeof(T).Name));
                }

            }


        }

    抽象配置父类...


      还有些东西没有摆出来...例如单个的配置啦..还是就是怎么样去使用它呀.....呵呵..有点懒...迟点记得再搞....

  • 相关阅读:
    js获取下拉框的值
    根据SNP的位置从基因组提取上下游序列
    PCA分析的疑问
    os删除文件或者文件夹
    python scipy包进行GO富集分析p值计算
    生物信息等级的划分
    docker笔记
    GATK4注意事项
    centos7修改yum源为阿里镜像
    idea如何通过数据库生成实体类
  • 原文地址:https://www.cnblogs.com/yans/p/1225130.html
Copyright © 2020-2023  润新知