2016-06-29 2 views
0

私はリフレクションを使って外部DLLからロードされたオブジェクトをシリアル化しようとしています。
オブジェクトは、JsonObject、JsonProperty、JsonConverterなどの既存のjson属性を無視してシリアル化されます。Newton JSON.NETはjson属性を無視します

var assembly = Assembly.LoadFrom(dllpath);  
object result = [invoke method on external assembly] 
var json = JObject.FromObject(result, new JsonSerializer { 
      PreserveReferencesHandling = PreserveReferencesHandling.None, 
      ReferenceLoopHandling = ReferenceLoopHandling.Serialize, 
      TypeNameHandling = TypeNameHandling.All 
     }); 

JsonConvert.SerializeObjectも機能しません。

+0

あなたの問題に[mcve]を与えることはあなたのためにありますか?外部DLLが別のバージョンのJson.NETを使用している可能性はありますか? – dbc

答えて

0

問題は、外部DLLと私自身が異なるバージョンのNewtonsoft.JSONを使用していたことです。
Newtonsoftバージョンを7.0.3にダウングレードすると、動作し始めました。

+0

新しいバージョンを使用する場合は、アセンブリバインディングリダイレクトを使用して外部アセンブリをアップグレードできる必要があります。私はNewtonsoftを信じて、変更を破らないようにしています。 https://msdn.microsoft.com/en-us/library/7wd6ex19(v=vs.110).aspx –

関連する問題