c# - Doing some actions (setting language) before controller initializes in Web API -
i trying set language controller in web api (doing internationalization globalization).
i writing attribute called setlanguage , decorate web-api controller it
something like,
[setlanguage] public servicerequestcontroller : apicontroller but problem this:
public class setacceptlanguageheader : attribute, icontrollerconfiguration { public void initialize(httpcontrollersettings controllersettings, httpcontrollerdescriptor controllerdescriptor) { if (controllersettings.request.headers.acceptlanguage != null && controllercontext.request.headers.acceptlanguage.count > 0) { var culture = new cultureinfo(controllercontext.request.headers.acceptlanguage.first().value); thread.currentthread.currentculture = culture; thread.currentthread.currentuiculture = culture; } } } but, not able because cannot access request controllersettings.
(though know idea of using basecontroller , overriding initialize method achieve same, trying use [setlanguage] attribute`)
any ideas how ?
you may try using action filters like
public class setlanguageattribute : actionfilterattribute { public override void onactionexecuting(httpactioncontext actioncontext) { //use actioncontext.request access request } } this can used decorate action method [setlanguage] attribute can possibly set culture needed.
Comments
Post a Comment