当前位置: 首页 > news >正文

网站推广服务合同判决书项目开发平台有哪些

网站推广服务合同判决书,项目开发平台有哪些,淘宝网站的推广与优化,专做正品 网站TranContext是一个比较重要的类,在这个类中,使用了反射方法,实现了根据配置文件动态创建类,实现了接口的作用. 1 publicabstractclassConfigurationFactory2 {3 publicConfigurationFactory()4 {5 //6 //TODO: 在此处添加构造函数逻辑7 //8 }9 publicstaticobjectCreateObject(…TranContext是一个比较重要的类,在这个类中,使用了反射方法,实现了根据配置文件动态创建类,实现了接口的作用.  1     public abstract class ConfigurationFactory 2     { 3         public ConfigurationFactory() 4         { 5             // 6             // TODO: 在此处添加构造函数逻辑 7             // 8         } 9         public static object CreateObject(object context,Type type)10         {11             ArgumentValidation.CheckForNullReference (context,TranContext);12             ArgumentValidation.CheckForNullReference (type,Type);13             ConstructorInfo constructor  type.GetConstructor(new Type[] {context.GetType ()});14             if (constructor  null)15             {16                 //throw new Exception(SR.ExceptionProviderMissingConstructor(type.FullName));17             }18             object createdObject  null;19             try20             {21                 createdObject  constructor.Invoke(new object[]{context});22             }23             catch24             {25 //                Console.WriteLine(ex.Message );26 //                throw new Exception (create oject: type.FullName failed!);27                 throw;28             }29             return createdObject;30         }31         public static object CreateObject(object context,string typeName)32         {33             ArgumentValidation.CheckForNullReference (context,TranContext);34             ArgumentValidation.CheckForEmptyString(typeName,typeName);35             object createObjectnull;36             try37             {38                 Assembly _AssemblyAssembly.Load(Assembly.GetExecutingAssembly().FullName);39                 createObject_Assembly.CreateInstance(typeName,40                     true,41                     System.Reflection.BindingFlags.CreateInstance,42                     null,43                     new object[]{context},//args44                     null,//CultureInfo45                     null);46             }47             catch48             {49 //                Console.WriteLine (ex.Message);50 //                throw new Exception (create oject: typeName failed!);51                 throw;52             }53             return createObject;54         } 55     }   这两个方法,实现了相同的目标,创建了一个对象,所不同的是实现的方法不同,第一个方法需要一个指定的类型作为参数,创建的对象所指定的类型,它使用了.net中ConstructorInfo这个类来实现的.   ConstructorInfo constructor type.GetConstructor(new Type[] {context.GetType ()}); createdObject constructor.Invoke(new object[]{context}); 第一句创建了各个构造器,第二句则创建了这个对象. Invoke里的参数是创建的对象的构造函数所要的参数   第二个方法,不需要创建对象的类型,而只需要对象的名称就可以了.在这个方法中使用的是Assembly这个类. Assembly _AssemblyAssembly.Load(Assembly.GetExecutingAssembly().FullName); 这条语句得到当前运行的Assembly createObject_Assembly.CreateInstance(typeName,                        true,                         System.Reflection.BindingFlags.CreateInstance,                        null,                        new object[]{context},//args                         null,//CultureInfo                        null); 这条语句则创建了指定的对象. 这个函数里的参数比较多.下面是引用msdn中: public object CreateInstance(    string bool BindingFlags Binder object[] CultureInfo object[] );参数typeName 要查找的类型的 Type.FullName。 ignoreCase 如果为 true则忽略类型名的大小写否则为false。 bindingAttr 影响执行搜索的方式的位屏蔽。此值是BindingFlags中的位标志的组合。 binder 一个对象它启用绑定、参数类型的强制、成员的调用以及通过反射进行MemberInfo 对象的检索。如果 binder 为空引用Visual Basic 中为 Nothing则使用默认联编程序。 args Object 类型的数组包含要传递给构造函数的参数。此参数数组在数量、顺序和类型方面必须与要调用的构造函数的参数匹配。如果需要默认的构造函数则 args 必须是空数组或空引用Visual Basic 中为 Nothing。 culture 用于控制类型强制的 CultureInfo 的实例。如果这是空引用Visual Basic 中为 Nothing则使用当前线程的 CultureInfo。例如这对于将表示 1000 的 String 转换为 Double 值是必需的因为不同的区域性以不同的方式表示 1000。 activationAttributes Object 类型的数组包含一个或多个可以参与激活的激活属性。激活属性的一个示例是 URLAttribute(http://hostname/appname/objectURI) 返回值 表示此类型且匹配指定条件的 Object 的实例如果没有找到typeName则为空引用Visual Basic 中为 Nothing。 我的本意是想通过一个工厂方法来实现接口的动态实现.但是利用了.net框架中的反射机制,发现要达到我原来的目的这么容易就实现了.所以就没有使用原来的工厂方法来实现,通过下面简单的函数调用即可: 1         public IBuilder CreateBuilder()2         {3             if (nullsection)4                 readConfigurationFile();5             return (IBuilder)ConfigurationFactory.CreateObject(this,section.Builder.ToString());6         } 读取配置文件是通过函数readConfigurationFile()来实现的  1         /// summary 2         /// 取得配置文件 3         /// /summary 4         private void readConfigurationFile() 5         { 6             try 7             { 8                 System.Reflection.Assembly Asm  System.Reflection.Assembly.GetExecutingAssembly(); 9                 string SourcePathPath.GetDirectoryName(Asm.Location);10                 SourcePathSystem.Configuration.ConfigurationSettings.AppSettings[MaunExcelConfig];11                 sectionXmlHelper.Read (setting.Key,SourcePath) as ManuSetting;12             }13             catch(System.IO.IOException ex)14             {15                 throw new System.Configuration.ConfigurationException(SR.MessageConfigFileNotFound,ex);16             }17             catch(Exception ex)18             {19                 throw new System.Configuration.ConfigurationException(SR.MessageConfigFileNotValidOrSectionNotFound,ex);20             }21         } 其中最主要的是sectionXmlHelper.Read (setting.Key,SourcePath) as ManuSetting;这句 XmlHelper是我仿造微软的Configuration Application Block做的一个配置类.功能是可以把一个类序列化和反序列化.这里就不多说了,不熟悉的朋友可以到http://www.cnblogs.com/Terrylee/archive/2006/08/01/Enterprise_Library.html 这里去查看,有很详细的说明. 完整源代码:   1     public class TranContext:IDisposable  2     {  3         private readonly TranSetting settingnull;  4         private IBuilder buildernull;  5         private ILog lognull;  6         private ManuSetting sectionnull;  7         public event EndReportEventHandler EndReport;  8         public TranContext()  9         { 10             // 11             // TODO: 在此处添加构造函数逻辑 12             // 13         } 14         public TranContext(TranSetting setting) 15         { 16             ArgumentValidation.CheckForNullReference (setting,TranSetting); 17             this.setting setting; 18         } 19         public TranContext(string key,string askFileName,string operation) 20         { 21             ArgumentValidation.CheckForEmptyString (key,key); 22             ArgumentValidation.CheckForEmptyString (askFileName,askFileName); 23             ArgumentValidation.CheckForEmptyString (operation,operation); 24             settingnew TranSetting (this,key,askFileName,operation); 25         } 26         public TranSetting Setting 27         { 28             get{return this.setting;} 29         } 30         public IBuilder Builder 31         { 32             get 33             { 34                 if (nullbuilder) 35                     builderCreateBuilder(); 36                 return builder ; 37             } 38         } 39         public ILog Log 40         { 41             get 42             { 43                 if (nulllog) 44                     logCreateLog(); 45                 return log; 46             } 47             set{logvalue;} 48         } 49         public IEntity Entity 50         { 51             get{return (IEntity)section.Entity;} 52         } 53         public ManuSetting Section 54         { 55             get 56             { 57                 if (nullsection)                     58                 { 59                     readConfigurationFile(); 60                 } 61                 return section; 62             } 63             set{sectionvalue;} 64         } 65         public string ReturnFileName 66         { 67             get{return setting.ReturnFileName;} 68         } 69         /// summary 70         /// 取得配置文件 71         /// /summary 72         private void readConfigurationFile() 73         { 74             try 75             { 76                 System.Reflection.Assembly Asm  System.Reflection.Assembly.GetExecutingAssembly(); 77                 string SourcePathPath.GetDirectoryName(Asm.Location); 78                 SourcePathSystem.Configuration.ConfigurationSettings.AppSettings[MaunExcelConfig]; 79                 sectionXmlHelper.Read (setting.Key,SourcePath) as ManuSetting; 80             } 81             catch(System.IO.IOException ex) 82             { 83                 throw new System.Configuration.ConfigurationException(SR.MessageConfigFileNotFound,ex); 84             } 85             catch(Exception ex) 86             { 87                 throw new System.Configuration.ConfigurationException(SR.MessageConfigFileNotValidOrSectionNotFound,ex); 88             } 89         } 90         public void Execute() 91         { 92             using(ContextWatch watchnew ContextWatch (this)) 93             { 94                 watch.EndReport new EndReportEventHandler(OnEndReport); 95                 watch.ExecuteContext(); 96             } 97         } 98         public void Dispose() 99         {100 //            Dispose(true);101             GC.SuppressFinalize(this);102         }103 //        private void Dispose(bool disposing)104 //        {105 //            if (disposing)106 //            {107 //                if (this.watch ! null)108 //                {109 //                    this.watch.EndReport - new EndReportEventHandler (OnEndReport);110 //                    watch.Dispose();111 //                }112 //            }113 //        }114         public IBuilder CreateBuilder()115         {116             if (nullsection)117                 readConfigurationFile();118             return (IBuilder)ConfigurationFactory.CreateObject(this,section.Builder.ToString());119         }120         public ILog CreateLog()121         {122             if (nullsection)123                 readConfigurationFile();124             return (ILog)ConfigurationFactory.CreateObject(this,section.Log.ToString());125         }126         public ITran CreateTran(object detail)127         {128             if (nullsection)129                 readConfigurationFile();130             return (ITran)ConfigurationFactory.CreateObject(detail,section.Tran.ToString());131         }132         private void OnEndReport(object sender,EndReportEventArgs e )133         {134             if (EndReport ! null)135             {136                 EndReport(this, e);137             }138         }139 140     } 转载于:https://www.cnblogs.com/nerozhang/archive/2007/05/15/746860.html
http://www.pierceye.com/news/922960/

相关文章:

  • 国外网站 服务器网络营销是什么专业的
  • 微官网与网站的区别网站建设及网络推广
  • 百度推广官方网站登录入口一个人制作网站
  • 重庆市建设公共资源交易中心网站首页当地人做导游的旅游网站
  • 北京网站建设收费龙溪网站制作
  • 佛山小企业网站建设郑州做网站销售怎么样
  • 招考网站开发如何创建一个自己的网页
  • 做网站一般链接什么数据库wordpress 504错误
  • 网站阵地建设江门网站建设工作
  • 汽车网站建设策划方案24小时永久有效在线观看
  • 潍坊做网页的公司潍坊网站排名优化
  • 中建铁路建设有限公司网站微信群营销工具
  • 单位网站建设意见建议百度关键词检测工具
  • 重庆网站建设方案书免费网上咨询医生是哪个网
  • 临沂市开发区可以做分销的网站网络域名综合查询
  • 建设银行企业网银网站过期银州手机网站建设
  • 导航网站 win8风格企业服务官网
  • 樟树有哪几个网站做爆药库在线制作图片视频生成器
  • 汕头网站定制青年汇网站开发公司
  • 厦门专业网站设计公司防控措施持续优化
  • wordpress子网站杭州化工网站建设
  • 怎样做网站 - 百度兰州家政公司
  • 网站上的字体大小福建省建设注册执业管理中心网站
  • 七台河做网站手机wap浏览器
  • 最新手机网站推荐哪个推广平台效果好
  • 百度官方网站关键词营销seo
  • 网站建设开发流程做网站的毕业设计
  • 网站模块wordpress图片多选
  • 济源市住房和城乡建设局网站公示聊城市城乡建设部网站查询
  • 阿里网 网站备案流程长春公司网站建设