我正在學習Spring.Net。我做了一個小例子來理解標籤autowire,但它不起作用。下面我的課:Autowire標記不起作用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Spring.Context;
using Spring.Context.Support;
namespace ConsoleApplication6
{
class Program
{
static void Main(string[] args)
{
IApplicationContext context;
context = new XmlApplicationContext("spring.xml");
Texte texte = null;
texte = (Texte)context.GetObject("texte");
texte.print();
Console.ReadKey();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication6
{
class Texte
{
private String _t;
private Description _desc;
public String T
{
get { return _t; }
set { _t = value; }
}
internal Description Desc
{
get { return _desc; }
set { _desc = value; }
}
public void print()
{
Console.WriteLine("text in object: " + _t);
Console.WriteLine("text description: " + _desc.D);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication6
{
class Description
{
private String _d;
public String D
{
get { return _d; }
set { _d = value; }
}
}
}
,在這裏我的xml文件:
<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net">
<object id = "texte" type = "ConsoleApplication6.Texte" autowire="byName">
<property name = "_t" value = "I am the Text"/>
</object>
<object id = "_desc" type = "ConsoleApplication6.Description">
<property name = "_d" value = "I am the description"/>
</object>
</objects>
文本對象被實例化,但似乎我的對象描述不實例化。
我閱讀文檔,我檢查了所有我能找到的文檔: http://springindepth.com/book/in-depth-ioc-autowiring.html http://www.berchtel.com/archive/diplomathesis/html/05.4-spring_.net.html
我還檢查了計算器自動裝配,但其中大部分都與自動裝配註釋相關的所有問題(我做沒有嘗試這個註釋)。
你們中的任何一個人對於問題在哪裏都有想法?
謝謝您的回答,我改變了我的XML文件,您recommandations和設置我的類描述爲公開但錯誤仍然相同: 「對象引用未設置爲對象實例。」 (錯誤發生在「Console.WriteLine(」text description:「+ _desc.D)」行) – 2013-04-10 06:46:55
我在我的答案中添加了一個示例。 – Marijn 2013-04-10 07:23:57
謝謝你@Marijn!它的工作原理,我想我的錯誤是: 1.描述是不是在我指定的私人attribut我的XML文件公開 2,而不是我要再次指定的公共訪問方法 謝謝! – 2013-04-11 08:01:35