Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In het voorbeeld WebContentTypeMapper ziet u hoe u nieuwe inhoudstypen kunt toewijzen aan wcF-berichttekstindelingen (Windows Communication Foundation).
Het WebHttpEndpoint element wordt aangesloten op de webberichtcoderingsprogramma, waarmee WCF JSON-, XML- of onbewerkte binaire berichten op hetzelfde eindpunt kan ontvangen. De encoder bepaalt de hoofdtekst van het bericht door naar het HTTP-inhoudstype van de aanvraag te kijken. In dit voorbeeld wordt de WebContentTypeMapper klasse geïntroduceerd, waarmee de gebruiker de toewijzing tussen het inhoudstype en de hoofdtekstindeling kan beheren.
WCF biedt een set standaardtoewijzingen voor inhoudstypen. Bijvoorbeeld: application/json wordt toegewezen aan JSON en text/xml wordt toegewezen aan XML. Elk inhoudstype dat niet is omgezet in JSON of XML, wordt omgezet in een onbewerkte binaire indeling.
In sommige scenario's (bijvoorbeeld PUSH-API's) bepaalt de serviceontwikkelaar niet het inhoudstype dat door de client wordt geretourneerd. Clients kunnen bijvoorbeeld JSON retourneren, zoals text/javascript in plaats van application/json. In dit geval moet de serviceontwikkelaar een type opgeven dat is afgeleid van WebContentTypeMapper om het opgegeven inhoudstype correct te verwerken, zoals te zien is in de volgende voorbeeldcode.
public class JsonContentTypeMapper : WebContentTypeMapper
{
public override WebContentFormat
GetMessageFormatForContentType(string contentType)
{
if (contentType == "text/javascript")
{
return WebContentFormat.Json;
}
else
{
return WebContentFormat.Default;
}
}
}
Het type moet de GetMessageFormatForContentType(String) methode overschrijven. De methode moet het contentType argument evalueren en een van de volgende waarden retourneren: Json, Xml, Rawof Default. Retourneert Default verwijst naar de standaardtoewijzingen voor webberichtencoders. In de vorige voorbeeldcode wordt het text/javascript inhoudstype toegewezen aan JSON en blijven alle andere toewijzingen ongewijzigd.
Als u de JsonContentTypeMapper klasse wilt gebruiken, gebruikt u het volgende in uw Web.config:
<system.serviceModel>
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="" contentTypeMapper="Microsoft.Samples.WebContentTypeMapper.JsonContentTypeMapper, JsonContentTypeMapper, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
Als u de vereiste voor het gebruik van JsonContentTypeMapper wilt controleren, verwijdert u het kenmerk contentTypeMapper uit het bovenstaande configuratiebestand. De clientpagina laadt niet wanneer u text/javascript probeert om JSON-inhoud te verzenden.
Het voorbeeld instellen, compileren en uitvoeren
Zorg ervoor dat u de One-Time Setup Procedure voor de Windows Communication Foundation-voorbeelden hebt uitgevoerd.
Bouw de oplossing WebContentTypeMapperSample.sln zoals beschreven in het bouwen van de Windows Communication Foundation-voorbeelden.
Navigeer naar
http://localhost/ServiceModelSamples/JCTMClientPage.htm(open JCTMClientPage.htm niet in de browser vanuit de projectmap).