C# 如何动态处理参数化变量 Winform,例:第三方系统动态调用

说明

在实际的系统当中,经常会有需要在我们的系统当中去调用第三方的系统,他们可能是EXE,浏览器,这时候我们可以通过参数化一些我们的系统变量来动态配置这种参数,从而动态的去调用,而不是去修改我们的代码。

1. 理解需求,需求说明
1.问题在于动态配置参数化,从而实现动态调用
2.如果你是刚开始搭建框架,最好是在框架层就设计这样一个参数变量类,去保存你系统的变量
3.在对接第三方系统中,往往没有固定规则和逻辑,根据对方提供的文档,一般是拼接Url,或者exe后面带参数,
4.除了基本参数。还可能动态获取当前时间,时间戳等等情况

获取源代码

基于需求,开始Code

先定义一个系统变量类,用于存储系统中的变量

/// <summary>
    /// 定义一个系统变量类
    /// </summary>
    public static class SystemVariables
    {
        public static string PatNo { get; set; }//病人号
        public static string HospNp { get; set; }//住院号
        public static string WardCode { get; set; }//病区代码
        public static string UserCode { get; set; }//登录账号代码
    }

定义一个参数处理帮助类

//定义一个参数帮助类
    public static class ParamsHepler
    {
        //系统变量字典
        public static Dictionary<string, object> Params { get; set; }
        /// <summary>
        /// 动态处理参数化变量
        /// </summary>
        /// <param name="p_url"></param>
        /// <returns></returns>
        public static string UrlFormater(string p_url)
        {
            Params = new Dictionary<string, object>();
            GetParams();
            return Params.Aggregate(p_url, (key, value) => key.Replace(value.Key, value.Value.ToString()));

        }
        /// <summary>
        /// 获取系统内置变量,并添加到字典当前
        /// </summary>
        private static void GetParams()
        {
            Params.Add("@PatNo", SystemVariables.PatNo);
            Params.Add("@HospNo", SystemVariables.HospNp);
            Params.Add("@WardCode", SystemVariables.WardCode);
            Params.Add("@UserCode", SystemVariables.UserCode);
            //可以自定义一些其他变量等等
            Params.Add("@GetDate", DateTime.Now.ToString());
        }
    }

调用方法 ,处理参数化Url
例如:www.baidu.com?Param1=@PatNo&HospNo=@HospNo&Ward=@WardCode
调用完成!
在这里插入图片描述

private void button1_Click(object sender, EventArgs e)
        {
           SystemVariables.PatNo= textBox1.Text;
            SystemVariables.HospNp = textBox2.Text;
            SystemVariables.WardCode = textBox3.Text;
            SystemVariables.UserCode = textBox4.Text;
            string paramulr = ParamsHepler.UrlFormater(textBox5.Text);
            MessageBox.Show(paramulr);
        }

创作不易,一键三连,谢谢

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值