C#,如何使用WebAPI在类中创建变量,然后可以在其他类中引用这些变量?

我正在更新Windows Form App,它将不同的货币彼此转换(例如,英镑转换为欧元,反之亦然)。我曾经有一个想法是创建一个利用Web API框架的类,以便:

  • 启动程序后下载最新汇率

  • 创建分别包含这些费率的变量

  • 将这些变量私下存储在类中,并以每种形式引用相关变量

(不幸的是,该作业需要多格式的布局-否则,我将以单一格式使用下拉菜单。)

这是迄今为止我在控制台应用程序中用于计划和测试目的的代码:

static void Main(string[] args)

    {

        string URL = "https://openexchangerates.org/api/latest.json?app_id=4837847d2bc64fc496cf325525c5cf0d";

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);

        request.ContentType = "application/json; charset=utf-8";

        request.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.GetEncoding("ISO-8859-1").GetBytes("GBP"));

        request.PreAuthenticate = true;

        HttpWebResponse response = request.GetResponse() as HttpWebResponse;

        using (Stream responseStream = response.GetResponseStream())

        {

            StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);

            string streamString = reader.ReadToEnd();

            string[] streamArray = Regex.Split(streamString, "\n|: |,\\s*");


            foreach (string s in streamArray)

            {

                if (s.Equals("\"GBP\""))

                {

                    int element = Array.IndexOf(streamArray,s);

                    string dTPString = streamArray[element + 1];

                    double dollarsToPounds = Convert.ToDouble(dTPString);

                }


                if (s.Equals("\"EUR\""))

                {

                    int element = Array.IndexOf(streamArray, s);

                    string dTEString = streamArray[element + 1];

                    double dollarsToEuros = Convert.ToDouble(dTEString);

                }

            }

        }


已经测试了数组分配,并且双重变量“ dollarsToPounds”和“ dollarsToEuros”在“ using(Stream ...)”语句的上下文中均被证明具有正确的值-但是,由于“ using”的属性,这些变量尚未在其上下文之外分配值(在Main()开头声明变量不会影响此结果)。


有没有一种我可以代替使用的方法结构来执行与“使用(Stream ...)”相同的任务,即读取提供的URL的内容,然后该变量将允许在同一类中的其他位置引用变量?然后,这将允许我在课外引用它。


如果您需要我进一步解释代码,请务必询问。


MMTTMM
浏览 246回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP