簡體   English   中英

C# dll System.Reflection.TargetInvocationException 錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM