[英]System.Reflection.TargetInvocationException error (C#)
[英]C# dll System.Reflection.TargetInvocationException error
我是 vs C# 的新手。 我也想使用 meta Trader 5 創建 dll 文件。我的 dll 在 Visual Studio 中正常工作。 但不適用於元交易者。
問題是Newtonsoft.Json
包。
代碼
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace Analiz
{
public class anlz
{
public static void metot()
{
var myDetails = JsonConvert.DeserializeObject<List<MyDetail>>(File.ReadAllText(@"C:\Users\Durak\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Files\json\deneme.json"));
}
}
public class MyDetail
{
public string emirtipi{get;set;}
public string miktar{get;set;}
public string takip{ get; set;}
}
}
錯誤:在此處輸入圖像描述
為不支持 Newtonsoft.Json 的外部程序創建 DLL 時,您不能以這種方式構建它。
從程序中刪除對 Newtonsoft.Json 的引用。
添加對 System.Runtime.Serialization 的引用
之后,您可以將代碼重構為:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace Analiz
{
public class anlz
{
public static void metot()
{
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(List<Test>));
List<MyDetail> myDetails = (List<Test>)serializer.ReadObject(new FileStream(@"C:\Users\Durak\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Files\json\deneme.json", FileMode.Open, FileAccess.Read));
}
}
public class MyDetail
{
public string emirtipi{get;set;}
public string miktar{get;set;}
public string takip{ get; set;}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.