2017-04-26 64 views
1

我想在Asternet中爲我的GeneralMappingStrategy使用XML。我有我的程序工作正常使用列表使用XML的Asternet AGI GeneralMappingStrategy

如:

 agiServer.MappingStrategy = new GeneralMappingStrategy(
     new List<ScriptMapping>() 
     { 
      new ScriptMapping() { 
      ScriptName = "testIVR", 
      ScriptClass = "Asterisk_Test.testIVR", 
      } 
     }); 

但我寧願它說,它可以在文檔中做,但它似乎並沒有說出來讀取XML文件任何地方需要XML格式。

我曾嘗試:

string pathtoxml = "test.xml"; 
agiServer.MappingStrategy = new GeneralMappingStrategy(pathtoxml); 

用我的XML爲:

<?xml version="1.0"?> 
<ScriptMapping> 
<ScriptName>testIVR</ScriptName> 
<ScriptClass>Asterisk_Test.testIVR</ScriptClass> 
</ScriptMapping> 

作爲一個完整的猜測,似乎是有道理的,但是這不會編譯,我得到的錯誤:

System.InvalidOperationException:'有反應類型'System.Collections.Generic.List`1 [AsterNET.FastAGI.MappingStrategies.ScriptMapping]''的錯誤。

有沒有人碰巧知道如何做到這一點?

+0

這是一個記錄不完善的庫。 [看代碼](https://github.com/AsterNET/AsterNET/blob/master/Asterisk.2013/Asterisk.NET/FastAGI/MappingStrategies/GeneralMappingStrategy.cs#L52),我唯一的建議是將你的某種根元素中的元素。它使用'XMLSerializer'將XML映射到'typeof(List )',因此它可能在包裝中尋找多個元素。我不知道C#,但我知道Asterisk和XML,所以我想我會扔我的2美分! – miken32

回答

0

看來Aster.NET庫存在一個問題,我現在已經提交了修復程序,它已被接受。對於將來有任何問題的人,XML格式爲:

<?xml version="1.0"?> 
<ArrayOfScriptMapping xmlns:xsi="w3.org/2001/XMLSchema-instance"; xmlns:xsd="w3.org/2001/XMLSchema"> 
<ScriptMapping> 
<ScriptName>testIVR</ScriptName> 
<ScriptClass>Asterisk_newTest.testIVR</ScriptClass> 
</ScriptMapping> 
</ArrayOfScriptMapping>