Supposons que j'ai une ressource comme ci-dessous:OpenRasta retour liste via JsonDataContractCodec
namespace OpenRastaApp.Resources
{
public class Foo
{
public string Bar { get; set; }
}
}
un gestionnaire comme:
namespace OpenRastaApp.Handlers
{
public class FooHandler
{
public object GetAll()
{
ArrayList foos = new ArrayList();
foos.Add(new Foo() { Bar = "Hello," });
foos.Add(new Foo() { Bar = " world!" });
List<Foo> result = new List<Foo>(foos.ToArray(typeof(Foo)) as Foo[]);
return result;
}
public object Get(int id)
{
return new Foo() { Bar = "Baz" };
}
}
}
et une configuration comme:
namespace OpenRastaApp
{
public class Configuration : IConfigurationSource
{
public void Configure()
{
using (OpenRastaConfiguration.Manual)
{
ResourceSpace.Has.ResourcesOfType<Foo>()
.AtUri("/foos")
.And.AtUri("/foos/{id}")
.HandledBy<FooHandler>()
.AsJsonDataContract();
}
}
}
}
/foos/1 Rend comme prévu avec:
{"Bar":"Baz"}
Cependant,/foos ne rend pas du tout. La console de débogage affiche le message "8- [2010-09-22 13: 39: 29Z] Information (0) Aucun codec de réponse n'a été recherché L'entité de réponse est null ou un codec de réponse est déjà défini." J'ai vérifié que le résultat est non nul avant de revenir. J'ai également essayé de retourner un Foo [], mais cela a eu la même erreur.
Oui, nous devrions vraiment mettre à jour la documentation. Les listes de choses et de choses sont deux ressources différentes. Nous devrions au moins avoir une information d'avertissement/débogage pour faire savoir aux gens – SerialSeb
Une autre option serait d'utiliser une liste dans les deux cas. C'est le chemin que j'ai commencé, au moins. – pc1oad1etter
Une sorte d'étape d'analyse de la configuration au démarrage seb? Il pourrait éventuellement produire des informations sur «Qu'est-ce que j'ai» et l'URI pour le débogage interne avec les types de média supportés par chaque type? – Psiren