如何从POST操作的序列化中排除属性?

时间:2019-06-10 09:38:30

标签: c# .net json visual-studio-2017

我正在开发一种服务以连接到Microsoft的Business Central API。他们在使用数据时使用OData协议。我已经为其客户对象创建了一个模型

["AKLastCheckInSuccessDate": 2019-06-03 09:06:11 +0000, "NSLanguages": <__NSArrayI 0x2820289c0>(
en-IN,
en
)
, "com.apple.content-rating.TVShowRating": 1000, "com.apple.content-rating.ExplicitBooksAllowed": 1, "AppleLanguagesDidMigrate": 16E227, "INNextHearbeatDate": 581574895.850746, "AppleLocale": en_IN, "NSInterfaceStyle": macintosh, "AKLastCheckInAttemptDate": 2019-06-09 20:42:49 +0000, "AddingEmojiKeybordHandled": 1, "com.apple.content-rating.MovieRating": 1000, "AKLastIDMSEnvironment": 0, "AKLastEmailListRequestDateKey": 2019-06-03 09:04:39 +0000, "AppleLanguages": <__NSCFArray 0x283579f80>(
en-IN
)
, "com.apple.content-rating.AppRating": 1000, "com.apple.content-rating.ExplicitMusicPodcastsAllowed": 0, "PKKeychainVersionKey": 4, "AppleKeyboards": <__NSCFArray 0x28357a080>(
en_IN,
emoji
)
, "AppleITunesStoreItemKinds": <__NSCFArray 0x281531080>(
itunes-u,
movie,
ringtone,
album,
software-update,
booklet,
tone,
music-video,
song,
podcast,
software,
podcast-episode,
wemix,
eBook,

artist,
mix,
document
)
, "INNextFreshmintRefreshDateKey": 581904664.355094, "ApplePasscodeKeyboards": <__NSCFArray 0x28357a0c0>(
en_IN@sw=QWERTY;hw=Automatic,
emoji@sw=Emoji
)
, "AppleKeyboardsExpanded": 1]

问题是使用Newtonsoft将对象序列化为JSON时:

public class Customer
{
    [JsonProperty(PropertyName = "@odata.etag")]
    public string etag { get; set; }

    public string id { get; }

    public string number { get; set; }

    public string displayName { get; set; }

    public string type { get; set; }
}

它也正在序列化etag和id。 etag用于更新和引用该特定对象,而id是其系统的GUID。

此模型用于GET,POST和PUT调用,因此我不想删除或创建其他专门用于etag和id的模型。在POST操作期间,有什么方法可以忽略这两个属性?

我尝试将字段初始化为空字符串/ null,这对于etags似乎还可以,但是id显然不起作用。

0 个答案:

没有答案