[c#] .NET JSON 직렬화 중 필드 무시 [XmlIgnore]와 비슷합니까?

.NET 3.5 sp1에서 JSON 문자열로 브라우저에 전송되는 POCO 클래스가 있습니다. 기본 JSON 직렬화를 사용하고 있으며 무시하고 싶은 필드가 있습니다. 직렬화되지 않도록 [System.Xml.Serialization.XmlIgnore]와 유사한 속성을 추가하고 싶습니다.



답변

내 모델 에서 ScriptIgnore 속성을 다음과 같이 사용합니다 .

public class Item
{
    [ScriptIgnore]
    public Item ParentItem { get; set; }
}

이 특정 시나리오에서는 Json serializer에서 순환 참조 오류가 발생했기 때문에 무시했습니다. 나는 한 SO 여기에 비슷한 질문을 I는 모델과 뷰 모델의 차이에 켜져 때.


답변

[ScriptIgnore]

허커 베리입니다.


답변

[ScriptIgnore(ApplyToOverrides = true)]텍스트 템플릿 (.tt) 파일에 를 추가하기 만하면
됩니다.

여기에 내 텍스트 템플릿의 일부가

#>
<#=codeStringGenerator.NavigationProperty(navigationProperty)#>
<#

코드를 삽입하면 codeStringGenerator내 클래스 위의 줄이 자동으로 생성되고 다음과 같이 표시됩니다.

[ScriptIgnore(ApplyToOverrides = true)]
public virtual ICollection<Currency> Currencies { get; set; }

또한 UsingDirectives삽입 할 함수를 수정해야했습니다."using System.Web.Script.Serialization;"


답변

속성을 내부로 설정합니다. 하지만 구조에 따라 다릅니다. 참작하다.


답변