Castle ActiveRecord 使用内嵌的配置文件

在示例 《 Castle ActiveRecord 小试 -单表 CRUD》  中,测试行为 CreateBlogTest() 在实施 ActiveRecord 配置时使用了内嵌的配置文件(嵌入资源)。

_TestUnitCase\BlogTest.cs 内容:

using  System;
using  NUnit.Framework;

using  test;

using  System.Reflection;

using  Castle.ActiveRecord.Framework.Config;
using  Castle.ActiveRecord;

namespace  test._TestUnitCase
{
    
/// <summary>
    
/// BlogTest 的摘要说明。
    
/// </summary>

    [TestFixture]
    
public class BlogTest
    
{
        
public BlogTest()
        
{
        }

        
        [Test]
        
public void CreateBlogTest()
        
{
            Assembly assembly 
= typeof(test.Blog).Assembly;
            XmlConfigurationSource src 
= new XmlConfigurationSource(assembly.GetManifestResourceStream("test.ActiveRecord.config"));
            ActiveRecordStarter.Initialize( src, 
typeof(Blog) );


            Blog blog 
= new Blog();

            blog.Name
="abcde1234";
            blog.Author
="stephenabcdef";
            
            Console.WriteLine(BlogManager.getInstance().CreateBlog(blog));
        }

    }

}


使用嵌入资源,需要引用用于反射的 System.Reflection 命名空间,该命名空间包含了一个名为 Assembly 的类。可以使用 Assembly 的方法 GetManifestResourceStream 获得内嵌资源,但是这个方法并不是静态的,所以要先取得 Assembly 的具体实例(程序集)。

可以通过 typeof(Namespace.ClassName).Assembly 方法获得类 Namespace.ClassName 所属的程序集。因此, 如果要把 ActiveRecord 的 XML 配置文件作为内嵌资源使用的话,该 XML 配置文件所在的 Namespace 必须至少包括一个类(class)。

你可能感兴趣的:(ActiveRecord)