내 컨트롤러에서 사용자 지정 개체를 반환하는 데이터 인터페이스를 구현하고 싶습니다. 모든 객체는 JSON 속성에 의해 직렬화 및 장식됩니다. 그래서 내 컨트롤러 방법은 간단하게 :ASP.NET MVC 컨트롤러에서 데이터 인터페이스 구현 및 JSON 반환
public class MyController : Controller, IMyInterface
{
public Foo[] GetFoosByName(string name)
{
return new Foo[]{new Foo(name), new Foo(name)}
}
}
나는 단순히 "Foo []"응답을 얻습니다. 내가 얻고 자하는 것은 JSON으로 직렬화 된 Foo 객체이다.
public JsonResult GetFoosByName(string name)
{
return Json(new Foo[]{new Foo(name), new Foo(name)});
}
을하지만 난 쉽게 유지 관리 할 수있는 방법으로 IMyInterface를 구현 할 수 없습니다 :
난 쉽게 JsonResult로 내 대답을 변경하여이 작업을 수행 할 수 있습니다.
JsonResult를 반환하면서 자동으로 동작을 가져올 수있는 방법에 대한 아이디어는 있지만 원래 반환 유형은 그대로 유지하고 있습니까?
내가 그것을 일반적으로 따를 수있는 좋은 패턴이 아닌, 내가 특별한 상황이 :) 귀하의 제안에 대해서는 동의 문제는 내일 IMyInterface이있는 경우 새로운 방법이 추가 한 코드를 유지하는 사람이를 업데이트 할 것이다 명시 적 구현이지만 새로운 JsonResult 메서드를 추가해야한다는 것을 알지 못할 수도 있습니다. –
옵션이 너무 많습니다. 인터페이스는 인터페이스입니다. 나는 지금 다른 생각이 없다. –
아마도'IMyInterfaceMVC'와 같은 상속 된 인터페이스를 도입 할 수 있습니다. 여기서'JsonResult'를 반환하는 메소드를 'new'할 수 있습니다. 새로운 메소드가 추가되면 컨트롤러에 에러가 생기고 액션 메소드를 추가 할 때 리턴 타입에 에러가 생기므로'IMyInterfaceMVC '도 강제 업데이트해야합니다. 명시 적으로 기본 인터페이스를 구현하고 'MVC'인터페이스를 암시 적으로 구현할 수 있습니다. 아마. 그래도 아이디어는 테스트하지 않았습니다. –