我想傳遞一個字符串列表作爲構造函數參數。我用web.config
來指定接口和服務綁定。所以我想配置web.config
在啓動類時傳遞字符串參數列表。我使用autofac作爲IOC。有人能幫我解決嗎?Autofac將字符串的傳遞列表作爲參數傳遞給構造函數
0
A
回答
1
以下是帶autofac配置的示例web.config。 Autofac.Example.Calculator.Division.Divide
的註冊有一個如何爲構造函數指定參數的示例。
<configuration>
<configSections>
<section name="autofac" type="Autofac.Configuration.SectionHandler, Autofac.Configuration"/>
</configSections>
<autofac defaultAssembly="Autofac.Example.Calculator.Api">
<components>
<component
type="Autofac.Example.Calculator.Addition.Add, Autofac.Example.Calculator.Addition"
service="Autofac.Example.Calculator.Api.IOperation" />
<component
type="Autofac.Example.Calculator.Division.Divide, Autofac.Example.Calculator.Division"
service="Autofac.Example.Calculator.Api.IOperation"
inject-properties="yes">
<parameters>
<parameter name="places" value="4" />
</parameters>
<properties>
<property name="EnableExceptions" value="true" />
</properties>
</component>
</components>
<modules>
<module type="CalculationModule" />
</modules>
<files>
<file name="Controllers.config" section="controllers" />
<file name="Services.config" />
</files>
</autofac>
</configuration>
有關使用AutoFac的基於XML的配置的更多信息,請參閱documentation here。
+0
我想他是要求一個字符串列表,而不是簡單的字符串。文檔沒有說明如何配置列表。這只是顯示了基本類型(字符串,數字),就像你的例子一樣。所以這不是真的回答這個問題,我想。 – Beachwalker
0
可以Autofac的XML配置模塊的配置清單,以這種方式傳遞的構造函數的參數:
<component type="MyNameSpace.MyClass, MyAssemblyName">
<parameters>
<parameter name="myListParameter">
<list>
<item value="MyFirstItem"/>
<item value="MySecondItem"/>
</list>
</parameter>
</parameters>
</component>
這適用於這兩個組件和模塊,是(幾乎)相同的代碼實現這一點:
var list = new List<string> { "MyFirstItem", "MySecondItem" };
var a = new MyNameSpace.MyClass(list);
// or explicitely with named parameter
var b = new MyNameSpace.MyClass(myListParameter: list);
注意參數的名稱需要匹配的MyClass類構造函數的一個:
public class MyClass
{
public MyClass(IList<string> myListParameter)
{
相關問題
- 1. 什麼作爲字符串參數傳遞給構造函數?
- 2. 將參數傳遞給構造函數
- 3. 將數組作爲參數列表傳遞給類構造器
- 4. JSP - 將字符串數組傳遞給構造函數
- 5. 將函數傳遞給構造函數
- 6. 將構造函數傳遞給函數
- 7. 將字符串集合作爲參數傳遞給JavaScript函數
- 8. 將字符串作爲參數傳遞給目標函數c
- 9. 將auto_ptr作爲參數傳遞給構造函數
- 10. 將字符串列表作爲輸入傳遞給函數
- 11. 將字符串參數傳遞給構造函數以調用函數
- 12. 將參數列表作爲一個字符串傳遞給python函數
- 13. 將結構傳遞給構造函數
- 14. 將數據傳遞給構造函數
- 15. 將連接字符串傳遞給ViewModel構造函數
- 16. 將空字符串或空值傳遞給DirectoryEntry構造函數
- 17. 類型要求:傳遞字符串作爲參數傳遞給函數
- 18. 如何傳遞一個字符串作爲參數傳遞給javascript函數
- 19. 無法將字符串參數傳遞給HttpGet構造函數,需要URI
- 20. 將拆分字符串傳遞給構造函數參數時ArrayIndexOutOfBound
- 21. 將字符串參數傳遞給SendDlgItemMessage
- 22. 將參數(字符串)傳遞給GetAsync()?
- 23. 將字符串參數傳遞給mysql
- 24. 將所有參數傳遞給構造
- 25. 複製字符串傳遞給函數作爲參數在C
- 26. 什麼作爲參數傳遞給構造函數從超類
- 27. 傳遞字典作爲參數傳遞給函數
- 28. 將字符串傳遞給jquery函數
- 29. 將字符串傳遞給函數
- 30. 將字符串傳遞給ggplot函數
您爲什麼使用基於代碼的配置上的XML的任何特定原因? – Steven
@Steven:這裏有效的問題+1。如果不需要基於XML的配置,通過代碼配置很容易實現。無論如何,我寫了答案如何使用XML來做到這一點。 – Beachwalker