ASP.NET Web API控制器专用串行器
发布时间:2020-12-15 23:26:22 所属栏目:asp.Net 来源:网络整理
导读:我有一个自己的主机Web API与2个控制器: 对于控制器1,我需要默认的DataContractSerializer(我正在暴露EF 5 POCO) 对于控制器2,我需要使用参数UseXmlSerializer设置为true(我暴露一个XmlDocument)的XmlFormatter, 我在控制器初始化期间尝试设置格式化程序,但
我有一个自己的主机Web API与2个控制器:
>对于控制器1,我需要默认的DataContractSerializer(我正在暴露EF 5 POCO) 我在控制器初始化期间尝试设置格式化程序,但配置似乎是全局的,影响所有控制器: public class CustomConfigAttribute : Attribute,IControllerConfiguration { public void Initialize(HttpControllerSettings settings,HttpControllerDescriptor descriptor) { settings.Formatters.XmlFormatter.UseXmlSerializer = true; } } 我该如何解决? 解决方法
你非常在正确的轨道上.但是您需要在配置属性中启动XmlMediaTypeFormatter的新实例,否则您将影响全局引用.
您知道,您需要根据IControllerConfiguration接口创建2个属性. public class Controller1ConfigAttribute : Attribute,IControllerConfiguration { public void Initialize(HttpControllerSettings controllerSettings,HttpControllerDescriptor controllerDescriptor) { var xmlFormater = new XmlMediaTypeFormatter {UseXmlSerializer = true}; controllerSettings.Formatters.Clear(); controllerSettings.Formatters.Add(xmlFormater); } } public class Controller2ConfigAttribute : Attribute,HttpControllerDescriptor controllerDescriptor) { var xmlFormater = new XmlMediaTypeFormatter(); controllerSettings.Formatters.Clear(); controllerSettings.Formatters.Add(xmlFormater); } } 然后用相关属性装饰你的控制器 [Controller1ConfigAttribute] public class Controller1Controller : ApiController { [Controller2ConfigAttribute] public class Controller2Controller : ApiController { (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 将AJAX ModalPopupExtender定位在屏幕问题的中心
- asp.net-core – 实体框架核心服务默认生命周期
- ASP.NET MVC 4实体框架6 SQL Compact Edition 4.0部署无需安
- asp.net-mvc – 使用HTML.Grid显示子对象
- asp.net – ASP调试 – 点击断点然后中止当前请求的执行
- 需要有关创建新ASP.NET应用程序的建议
- 如何在.NET MVC应用程序中包含社交媒体共享?
- 经典ASP和ASP.NET MVC2集成
- asp.net-web-api – Web Api使用IDependencyResolver补充启
- asp.net-mvc – ASP.NET MVC 5模型绑定编辑视图
推荐文章
站长推荐
- ef-code-first – ASP.NET Identity – 将用户ID
- 详解在Azure上部署Asp.NET Core Web App
- asp.net – 如何在两个网站中访问同一个Session?
- asp.net – 在单个位置禁用Windows身份验证
- asp.net-mvc – MVC与WebForms
- iis-7 – 在iis7上设置经典的asp站点,站点运行但
- asp.net调查问卷引擎
- asp.net-mvc-4 – 访问路径“/ etc/mono/registr
- asp.net-mvc – 使用Html.BeginForm()与自定义路
- asp.net – 如何以编程方式回收.net Web应用程序
热点阅读