0

c# で xbim (v5.1.323) を使用して、文字列 IfcParameterValue を既存の IfcFlowSegment (Ifc2x3) に追加しようとしています。これは、以下のコードでは「シリンダー」と呼ばれます。"IfcParameterValue" のコンストラクターは、double と string の両方を受け入れます。double 値の追加は完全に機能しましたが、文字列をコンストラクターに渡して IfcParameterValue を作成しようとすると、常にエラーが発生します。

ワーキング(ダブル値)

IfcValue value = new IfcParameterValue(33d);
cylinder.SetPropertySingleValue("MySet", "Value 1", value);

動作していません(文字列値)

IfcValue valueString = new IfcParameterValue("myStringValue"); // Exception!!!
cylinder.SetPropertySingleValue("MySet", "Value 2", valueString);

これは私が得るエラーです:

System.NotSupportedException: 'System.Type' インスタンスのシリアル化と逆シリアル化はサポートされていません。セキュリティの問題が発生する可能性があるため、避ける必要があります。パス: $.TargetSite.DeclaringType. ---> System.NotSupportedException: 「System.Type」インスタンスのシリアル化と逆シリアル化はサポートされていません。セキュリティ上の問題が発生する可能性があるため、避ける必要があります。System.Text.Json.Serialization.Converters.TypeConverter.Write (Utf8JsonWriter ライター、Type 値、JsonSerializerOptions オプション) で System.Text.Json.Serialization.JsonConverter 1.TryWrite(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state) at System.Text.Json.JsonPropertyInfo1.GetMemberAndWriteJson (オブジェクト obj、WriteStack& 状態、Utf8JsonWriter ライター) で System. Text.Json.Serialization.Converters.ObjectDefaultConverter1.OnTryWrite(Utf8JsonWriter writer, T value, JsonSerializerOptions options, WriteStack& state) at System.Text.Json.Serialization.JsonConverter1.TryWrite(Utf8JsonWriter ライター、T& 値、JsonSerializerOptions オプション、WriteStack& 状態) System.Text.Json.JsonPropertyInfo 1.GetMemberAndWriteJson(Object obj, WriteStack& state, Utf8JsonWriter writer) at System.Text.Json.Serialization.Converters.ObjectDefaultConverter1.OnTryWrite(Utf8JsonWriter ライター、T 値、JsonSerializerOptions オプション、WriteStack& 状態) System.Text.Json.Serialization.JsonConverter 1.TryWrite(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state) at System.Text.Json.Serialization.JsonConverter1.WriteCore(Utf8JsonWriter ライター、T& 値、JsonSerializerOptions オプション、WriteStack& 状態)

この例外の原因は何ですか? または、パラメーター (属性) を IfcElement に簡単に追加するためのより良い解決策はありますか?

本当にありがとう!

4

0 に答える 0