自定义控制器配置更改所有控制器设

时间:2018-01-07 10:43:14

标签: c# asp.net-web-api custom-attributes asp.net-apicontroller

我正在开发一个使用webapi控制器的应用程序。我只需要为 特定 控制器设置一些设置,而不是 所有 !我使用IControllerConfiguration并在initialize方法中设置 类型名称处理 设置。我希望此设置仅适用于具有该属性的一个控制器,但它适用于All,所有其他控制器也错误地使用此新设置!我需要在Schedulecontoller上应用自定义属性 ONLY 有没有解决方案,谢谢。

 public class CustomJson245Attribute : Attribute, IControllerConfiguration
    {
        public void Initialize(HttpControllerSettings controllerSettings, HttpControllerDescriptor controllerDescriptor)
        {
            controllerSettings.Formatters.JsonFormatter.SerializerSettings.TypeNameHandling= TypeNameHandling.Auto;
           // formatter.SerializerSettings.TypeNameHandling = TypeNameHandling.Auto;
        }
    }

[CustomJson245]
public class ScheduleController : ApiController
{}

我不需要这个控制器的设置来改变!但它会随着ScheduleSetting而改变。

  public class SimpleController : ApiController
    {}

EDITED 我终于找到了答案,

 public void Initialize(HttpControllerSettings controllerSettings, HttpControllerDescriptor controllerDescriptor)
            {
    controllerSettings.Formatters.Clear();
                controllerSettings.Formatters.Add(new JsonMediaTypeFormatter() { SerializerSettings = new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.Auto} });
}

0 个答案:

没有答案