2

在 OpenRasta 中,我应该如何使用三种不同的编解码器注册资源,并通过在 URL 上附加扩展名来通过常规 Web 浏览器访问这些编解码器?以下似乎不起作用:

MediaType json = MediaType.Json.WithQuality(1f);
MediaType xml = MediaType.Xml.WithQuality(0.9f);
MediaType html = MediaType.Html.WithQuality(0.1f);

ResourceSpace.Has
    .ResourcesOfType<ResourceBase>()
    .WithoutUri
    .TranscodedBy<MyXmlCodec>().ForMediaType(xml).ForExtension("xml")
    .And.TranscodedBy<MyHtmlCodec>().ForMediaType(html).ForExtension("html")
    .And.TranscodedBy<JsonDataContractCodec>().ForMediaType(json).ForExtension("json");

ResourceSpace.Has
    // UserListResource inherits ResourceBase
    .ResourcesOfType<UserListResource>()
    .AtUri("/users")
    .HandledBy<UserHandler>();

UserListResource已注册并可以text/html在常规网络浏览器中使用,但附加.xml到 URL 只会给我一个 404。我试过这个:

ResourceSpace.Has
    // UserListResource inherits ResourceBase
    .ResourcesOfType<UserListResource>()
    .AtUri("/users")
    .And.AtUri("/users.xml")
    .HandledBy<UserHandler>();

但这只会在和 上给我相同的text/html表示。/users/users.xml

4

0 回答 0