programing

의 필드를 무시합니다.[Xml Ignore]와 유사한 NET JSON 시리얼화

yellowcard 2023. 3. 31. 21:58
반응형

의 필드를 무시합니다.[Xml Ignore]와 유사한 NET JSON 시리얼화

에 JSON 문자열로 브라우저에 전송되는 POCO 클래스가 있습니다.NET 3.5 sp1디폴트 JSON 시리얼라이제이션만 사용하고 있는데 무시해야 할 필드가 몇 개 있습니다.[System]과 같은 속성을 붙이고 싶습니다.Xml.시리얼라이제이션시리얼화되지 않도록 XmlIgnore]를 설정합니다.

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

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

이 시나리오에서는 Json serializer에서 순환 참조 오류가 발생하여 그냥 무시했습니다.여기 SO에 대해서도 비슷한 질문을 하고 있는데 모델과 View Model의 차이를 알게 되었습니다.

[ScriptIgnore] 

당신의 허커버리다.

추가만 하면 됩니다.[ScriptIgnore(ApplyToOverrides = true)]텍스트 템플릿(.tt) 파일로 변환합니다.

여기 내 텍스트 템플릿의 일부가 있습니다.

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

코드를 삽입한 후 위 행에codeStringGeneratormy classes가 자동으로 생성되어 다음과 같이 나타납니다.

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

또, 그 수정도 필요했습니다.UsingDirectives삽입 기능"using System.Web.Script.Serialization;"

속성을 내부로 설정합니다.하지만 당신의 구조에 따라 다르죠.고려하다.

언급URL : https://stackoverflow.com/questions/1411577/ignoring-a-field-during-net-json-serialization-similar-to-xmlignore

반응형