黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

【Spring.net點滴】

系統 1897 0
(環境:.Net1.1 ,Spring.net 1.2 Preview)

1. 集合屬性注入
我們的組件經常需要集合類型的屬性注入,比如我的Hook(鉤子)組件需要注入一個集合,該集合中的元素(int型)指明了要截獲哪些類型的消息。我們經常使用IList處理集合問題:
#region HookList其中元素為整數類型
private IListhookList = new ArrayList();
public IListHookList
{
set
{
this .hookList = value;
}
}
#endregion
對應的Spring配置片斷如下:
<propertyname="HookList">
<list>
<value>1</value>
<value>3</value>
<value>2</value>
</list>
</property>

當IOC容器根據配置組裝后,發現HookList中的元素是string類型的,因為 IList中可以容納任意類型的object,所以Spring采用了配置的默認類型--string。不出你想象,在運行時,如果使用下面的代碼一定會拋出異常:
foreach ( int key in this .HookedList)

在經過一番思索和試驗后,結論是這樣的:
(1)如果要設置的集合屬性中的元素是string類型的,使用IList就很好。
(2)如果是其他類型,則屬性集合的類型最好是目標類型的數組,即上面的屬性可以改為:
#region HookList
private int []hookList = new int [ 0 ];
public int []HookList
{
set
{
this .hookList = value;
}
}
#endregion

屬性的定義經過修改后,配置文件和使用它的代碼不用做任何修改即可正常工作。

2.2006-06-12 當Spring依據配置文件裝配對象時,如果發生錯誤,那么Spring在拋出異常之前將會依次調用每個已實例化對象的 Dispose 方法,然后再拋出System.Configuration.ConfigurationErrorsException。
如果你的程序在調用Spring.Context.Support.ContextRegistry.GetContext()時沒有了反應,那么很可能是在調用某個實例的Dispose方法中有ManualResetEvent.WaitOne(-1, true);的存在。

3.2006-06-13 從多個Xml配置文件中讀取對象
有三種類型的配置文件可以用來裝配組件:
(1)App.config 在Context配置節中作如下指示:
< resourceuri = " config://spring/objects " />

(2)嵌入到程序集中的xml配置文件。在Context配置節中作如下指示:
< resourceuri = " assembly://SpringNestConfigTest/SpringNestConfigTest/AppContext.xml " />
格式:uri = " assembly://MyAssembly/MyProject/AppContext.xml " /

(3)AppBase下的普通xml配置文件。在Context配置節中作如下指示:
< resourceuri = " file://objects.xml " />

綜合起來:
< context >
<!-- using section in App.config -->
< resourceuri = " config://spring/objects " />
<!-- using embeddedassemblyconfigurationfile -->
< resourceuri = " assembly://SpringNestConfigTest/SpringNestConfigTest/AppContext.xml " />
<!-- using commonconfigurationfile -->
< resourceuri = " file://objects.xml " />
</ context >

比如objects.xml的內容:
<? xmlversion = " 1.0 " encoding = " utf-8 " ?>
< objectsxmlns = " http://www.springframework.net " >
< object name = " esbNetMessageHook " type = " ESFramework.Network.EsbNetMessageHook,ESFramework " >
</ object >

< object name = " agileTcp " type = " ESFramework.Network.Tcp.AsynTcp,ESFramework " >
< propertyname = " EsbLogger " ref = " esbLogger " />
</ object >
</ objects >

esbLogger對象定義于AppContext.xml中。

【Spring.net點滴】


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論