(一)物理路径(可以复制)

IResource input = new FileSystemResource(@"self.xml");

IObjectFactory fac = new XmlObjectFactory(input);

 

(二)程序集方法

url语法:

file://文件名(复制)
assembly://程序集名/命名空名/文件名(嵌入)

 要将文件设置为“嵌入的资源” 不然会报如下错误

Error creating context 'spring.root': InputStream is null from Resource = [assembly [Spring_2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null], resource [Spring_2.Objects.xml]]


IApplicationContext context = new XmlApplicationContext("file://self.xml");

IObjectFactory fac = (IObjectFactory)context;

 

还可以:

IApplicationContext context = new XmlApplicationContext("assembly://SpringSample/SpringSample/self.xml");

IObjectFactory fac = (IObjectFactory)context;

 

(三)配置文件

app.config web.config文件内容或无,xml文件嵌入

 

app.config文件

xml version="1.0" encoding="utf-8" ?>

<configuration>

  <configSections>

    <sectionGroup name="spring">

      <section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core" />

      <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />

    sectionGroup>

  configSections>

  <spring>

    <context>

      <resource uri="assembly://SpringSample/SpringSample/self.xml"/>

      <resource uri="config://spring/objects" />

    context>

    <objects xmlns="http://www.springframework.NET">

    objects>

  spring>

configuration>

 

 

Self.xml文件

xml version="1.0" encoding="utf-8" ?>

<objects xmlns="http://www.springframework.net">

  <object id="Customer" name="Customer" type="SpringSample.Customer">object>

objects>

 

IApplicationContext context = ContextRegistry.GetContext();

(context.GetObject("Customer"as Customer).ShowMessage();