技术开发 频道

浅析Web Service模式中的Service Observer

附件

    通过访问配置文件,根据抽象类型动态加载实体类型实例 :

///C# 测试用的抽象类型 interface IPerson { } ///C# 测试用的实体类型 class Student : IPerson { } class Employee : IPerson { } ///App.Config ///在配置文件中增加独立的配置节,并登记相关的实体类型信息 QualifiedTypeName方式: Quanlified Class Name, Assembly Name <configuration> <configSections> <section name ="DemoSection" type="System.Configuration.NameValueSectionHandler,
System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
"/> </configSections> <DemoSection> <add key="student" value="VisionTask.Training.ServicePattern.ConfigurationDynamics.
UnitTest.Student, ConfigurationDynamics.UnitTest
"/> <add key="employee" value="VisionTask.Training.ServicePattern.ConfigurationDynamics.
UnitTest.Employee, ConfigurationDynamics.UnitTest
"/> </DemoSection> </configuration> ///C# UnitTest using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Configuration; using System.Diagnostics; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace VisionTask.Training.ServicePattern.ConfigurationDynamics.UnitTest { [TestClass] public class TestLoadConfiguration { [TestMethod] public void Test() { NameValueCollection items = (NameValueCollection)(ConfigurationManager.GetSection("DemoSection")); Assert.IsNotNull(items); IPerson person; foreach (string key in items.Keys) { string typeName = items[key]; person = (IPerson)(Activator.CreateInstance(Type.GetType(typeName))); } } } }

 

0
相关文章