問題タブ [yamldotnet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - YamlDotNet で YamlMember にエイリアスを指定するには?
次の YAML をカスタム タイプに逆シリアル化する必要があります。YamlAlias 属性は時代遅れのようですので、YamlMember に置き換えました。以下の例外で次の YAML のデシリアライズに失敗します。
YamlDotNet.Core.YamlException : (Line: 21, Col: 13, Idx: 524) - (Line: 21, Col: 13, Idx: 524): デシリアライズ中の例外 ----> System.Runtime.Serialization.SerializationException :タイプ「Toscana.Domain.HostProperties」でプロパティ「mem_size」が見つかりません。
c# - Unity 用の Yaml.net を使用した YAML から C# への変換
私は現在、YAML ファイル内に文字列とさまざまな翻訳でいっぱいのファイルがあるゲームを作成しています。
これがどのように見えるかの例です。
ご覧のとおり、ネストされた辞書が 3 つあります。1 つ目は、言語 - en
、es
、cn
、またはその他の国の接頭辞を示しています。次に、キャラクター名の辞書のリストがあります。これらは からplayer
まで何でもかまいませんbob
。最後に、各文字には行の辞書のリストがあります。
私は YAML.net を使用しています (Unity 用のバージョンですが、通常と変わらないようです)。
これは、私のオブジェクトがどのようにレイアウトされているかの例です。
ただし、コンパイラはそれが私のクラスのプロパティではないことをen
訴えているため、これは機能しません。個々の国コードまたはキャラクター名をすべて指定せずに、この問題を解決するにはどうすればよいですか? es
Translation
c# - インターフェイスを使用してリストをシリアライズ/デシリアライズする方法
インターフェイスを使用してリストをシリアライズおよびデシリアライズしようとしましたが、問題は yamldotnet がリストをデシリアライズできないことです。
例を挙げて説明しました:
これをシリアル化しようとすると:
この結果は次のようになります。
この時点で、yamldotnet はどのタイプであるかを認識できないことを理解しています。また、クラス タイプも内部で定義する必要があります。yml
では、どうすればこれをアーカイブできますか?
私はすでにドキュメントで何かを見つけようとしましたが、例だけがあり、インターフェース/リストには何もありません。
yamldotnet - YamlDotNet SerializationOptions.EmitDefaults の動作
参照型と値型の両方を持つ YamlDotNet でオブジェクトをシリアル化しています。私が達成しようとしているのは、ゼロの整数値が出力された yaml に残りますが、null 値は破棄されることです。EmitDefaults は、数値の「0」を破棄するように見えます。null が参照型のデフォルト値であることを理解しています。Json.Net は、次のプロパティに分割することでこれを解決しました。
NullValueHandling = NullValueHandling.Ignore、
DefaultValueHandling = DefaultValueHandling.Ignore、
以下を達成する方法はありますか?
ありがとう
.net - YamlDotnet は参照を正しく設定します
次のようなクラスがあります。
シリアル化すると:
出力は次のとおりです。
*o0
親である他のクラスのIDである作成された参照があります。しかし、YamlDotnet はこの参照を定義していないため、逆シリアル化すると、アンカーが見つからないというエラーが表示されます。
これはフレームワークのバグですか、それとも何かできることはありますか?
c# - YamlDotNet シリアライザー コンストラクターが例外をスローする
YamlDotNet docu https://dotnetfiddle.net/QlqGDVのコードに従う必要があります
しかし、新しいシリアライザーはその例外をスローしますが、その理由はわかりません。その例外メッセージのヒントは見つかりませんでした。
yamldotnet - YamlDotNetはシリアル化のメインの親を指定しますか?
タイルのリストを含む Planet クラスがあります。各タイルには、隣接するタイルのリストもあります。何らかの方法で、すべてのタイルが (間接的に) 接続されています。今、これを YamlDotNet でシリアライズしようとしています。ただし、非常に醜いネストされたシリアライゼーションが発生します。
最小限の実例: ( https://dotnetfiddle.net/sWGKMB )
これにより、これが yaml ドキュメントとして提供されます。
ご覧のとおり、すべてのタイルが何らかの形で接続されているため (私のミニ例では直接)、惑星のリストの最初のタイルは、すべてのタイルに対して巨大なネスト構造を作成します。
YamlDotNet に「隣人」リストの参照と、タイル リストの実際のクラスを強制的に使用させることはできますか? したがって、次のようになります。
ありがとう!