質問編集履歴
1
前提・質問内容更新
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,9 +1,14 @@
|
|
1
1
|
# 前提
|
2
2
|
C#⇒C++/CLIの流れで動くライブラリ(DLL)作っています。
|
3
|
+
◆C++/CLIで実現したいこと
|
3
|
-
|
4
|
+
・XMLを読み込んで、自作クラスに値を割り当てて、C#に返す。
|
5
|
+
◆C#で実現したいこと
|
4
|
-
C
|
6
|
+
・C++/CLIから取得したクラスをベースにNewtonsoft.JsonライブラリでJson文字列へ変換
|
7
|
+
・作成したJson文字列を同様にNewtonsoft.JsonライブラリでJObject型作成。
|
5
8
|
|
9
|
+
C#であればC++/CLIで実現したいもののクラス構造、処理は算段は立ったのですが、さてC++/CLIで作る、となると知識・経験不足で難航しています。
|
10
|
+
|
6
|
-
●C
|
11
|
+
●C++/CLIで作りたいクラス構造(C#版)
|
7
12
|
```C#
|
8
13
|
// C#で作る場合のクラスイメージです。
|
9
14
|
// C#が呼び出すインタフェースクラス・メソッド
|
@@ -52,6 +57,14 @@
|
|
52
57
|
}
|
53
58
|
}
|
54
59
|
```
|
60
|
+
●C++/CLIのクラス定義
|
61
|
+
```C++
|
62
|
+
ref class Analyze;
|
63
|
+
class JsonClass;
|
64
|
+
class ProfileList;
|
65
|
+
class Member;
|
66
|
+
class Carrer;
|
67
|
+
```
|
55
68
|
●作りたいJsonイメージ
|
56
69
|
```JSON
|
57
70
|
{
|
@@ -74,18 +87,17 @@
|
|
74
87
|
}
|
75
88
|
```
|
76
89
|
●C#の処理
|
90
|
+
「C#で作る場合のクラスイメージ」の
|
77
91
|
```C#
|
78
92
|
dynamic jsonClass = XMLAnalyze("ファイルパス");
|
79
93
|
string jsonStr = JsonConvert.SerializeObject(jsonClass);
|
80
94
|
JObject jobject = JObject.Parse(jsonStr);
|
81
95
|
```
|
82
|
-
C#からの参照可(public refクラス)はC#イメージクラスのpublicにしているAnalyzeクラスのみで考えています。
|
83
96
|
# 質問内容
|
97
|
+
C++/CLIで生成したクラスをC#で受け取って、プロパティのint型にnullが入っているという状態になる方法に難航しています。
|
84
|
-
C#
|
98
|
+
C#にはint?のようにnull許容型がありますが、C++には無い認識です。
|
85
|
-
|
99
|
+
JSON変換にあたって、数値型でもXMLに該当するタグが無ければ、「"age":null」のように"null"でも0でもなく、nullにしたいです。
|
86
|
-
|
100
|
+
C++がC#にクラスデータを送り、受け取ったクラスのint型プロパティがnull許容型となる方法はありますでしょうか?
|
87
|
-
Null許容型のint型をstring型に変更して、"null"を入れれば?という方法も検討したのですが、最終的にはJObject化して、数値として扱っていく予定のため、あくまで数値かつ「"age":null」のような形でJson文字列化してもらいたいです。
|
88
|
-
C#クラスイメージのC++版を生成するには、どのような構造になっていればよろしいのでしょうか?
|
89
101
|
# 補足
|
90
102
|
開発環境:VisualStudio2015 Professional
|
91
103
|
.NET:バージョン4.6
|