zoukankan      html  css  js  c++  java
  • [Visual C#] 工厂类的实现

     1     /// <summary>
     2     /// 表示一组静态方法,这些方法用于创建SMSProviderFactory类的一个或多个实例
     3     /// </summary>
     4     public class SMSProviderFactories
     5     {
     6         /// <summary>
     7         /// 返回SMSProviderFactory的一个实例
     8         /// </summary>
     9         /// <param name="providerInvariantName">提供程序的固定名称</param>
    10         /// <returns></returns>
    11         public static SMSProviderFactory GetFactory(string providerInvariantName)
    12         {
    13             if (string.IsNullOrEmpty(providerInvariantName))
    14             {
    15                 throw new ArgumentNullException("providerInvariantName");
    16             }
    17             try
    18             {
    19                 Type type = Type.GetType(providerInvariantName);
    20 
    21                 if (type == null)
    22                 {
    23                     throw new Exception("指定的提供程序并未安装!");
    24                 }
    25 
    26                 FieldInfo field = type.GetField("Instance", BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly);
    27 
    28                 if ((field != null) && field.FieldType.IsSubclassOf(typeof(SMSProviderFactory)))
    29                 {
    30                     object obj = field.GetValue(null);
    31 
    32                     if (obj != null)
    33                     {
    34                         return (SMSProviderFactory)obj;
    35                     }
    36                 }
    37             }
    38             catch (Exception err)
    39             {
    40                 throw err;
    41             }
    42 
    43             throw new Exception("提供程序丢失");
    44         }
    45     }
  • 相关阅读:
    ElasticSearch入门 第一篇:Windows下安装ElasticSearch
    怎样打开.jar格式文件,怎样运行.jar格式文件
    如何安装java环境和如何配置java环境
    JDK安装、java环境配置
    学习PHP好,还是Python好呢?
    艾伟:WPF简介 狼人:
    艾伟:ASP.NET MVC,深入浅出IModelBinder,在Post方式下慎用HtmlHelper 狼人:
    艾伟:在Mono平台开发前你应该知道 狼人:
    艾伟:一个较完整的关键字过滤解决方案(上) 狼人:
    艾伟:闲话WPF之一(WPF的结构) 狼人:
  • 原文地址:https://www.cnblogs.com/briny/p/2637334.html
Copyright © 2011-2022 走看看