2017-04-26 8 views
1

J'essaie d'utiliser XML pour ma GeneralMappingStrategy dans Asternet. J'ai mon programme fonctionne très bien à l'aide ListeAsternet AGI GeneralMappingStrategy utilisant XML

tels que:

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

Mais je préfère l'ai lu un fichier XML comme il est dit qu'il peut faire dans la documentation, mais il ne semble pas dire partout où le format XML est requis.

J'ai essayé:

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

Avec mon XML:

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

Comme une estimation complète, semblait avoir du sens, mais cela ne compilera pas, je reçois des erreurs de:

System.InvalidOperationException: 'Une erreur s'est produite lors du type' System.Collections.Generic.List`1 [AsterNET.FastAGI.MappingStrategies.ScriptMapping] '.'

Est-ce que quelqu'un sait comment faire?

+0

qui est une bibliothèque mal documentée. [En regardant le code] (https://github.com/AsterNET/AsterNET/blob/master/Asterisk.2013/Asterisk.NET/FastAGI/MappingStrategies/GeneralMappingStrategy.cs#L52), ma seule suggestion serait d'envelopper votre '' élément dans un élément racine quelconque. Il utilise 'XMLSerializer' pour mapper le XML vers' typeof (List ) ', il peut donc rechercher plusieurs éléments' 'dans un wrapper. Je ne connais pas C#, mais je connais Asterisk et XML alors je pensais que je mettrais mes 2 cents! – miken32

Répondre

0

Il semble qu'il y avait un problème avec la bibliothèque Aster.NET, j'ai maintenant soumis le correctif et il a été accepté. Pour toute personne qui a un problème à ce sujet dans l'avenir, le format XML est:

<?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>