Пример #1
0
        public void  GetData(int value)
        {
            Console.WriteLine("server");
            Icall client = OperationContext.Current.GetCallbackChannel <Icall>();

            client.done(4);
        }
Пример #2
0
 //报价器应收 Add by zp 2013-12-04
 public static void Bjq_YsCall(string bjqxh, Icall call, string msg)
 {
     if (zlkye > ysje && bjqxh == "上海通导语音报价器型号Ⅳ")
     {
         call.Call(DmType.应收, msg);
     }
     else if (zlkye > zje && bjqxh == "上海通导语音报价器邵阳第一人民医院")
     {
         call.Call(DmType.姓名, msg);
         call.Call(DmType.总费用, zje.ToString("0.00") + "元");
     }
     else
     {
         call.Call(DmType.姓名, msg);
         call.Call(DmType.应收, ysje.ToString("0.00"));
     }
 }
Пример #3
0
 //报价器找零
 public static void Bjq_ZlCall(string bjqxh, Icall call, string msg)
 {
     if (bjqxh.Trim() == "上海通导语音报价器型号Ⅳ" && cwjz > 0)
     {
         string par = ",,,," + ssje.ToString("0.00") + "元";
         call.Call(DmType.实收, par);
     }
     else if (bjqxh.Trim() == "上海通导语音报价器邵阳第一人民医院" && cwjz > 0 && ssje == 0)
     {
         //Add by tck 2013-11
         string par = cwjz.ToString("0.00") + "元" + "," + (zlkye - cwjz) + "元";
         call.Call(DmType.实收, par);
     }
     else
     {
         call.Call(ssje.ToString("0.00"), zlje.ToString("0.00"));
     }
 }
Пример #4
0
    static string GenIcallDecl(Icall icall)
    {
        var sb     = new StringBuilder();
        var method = icall.Method;

        sb.Append(MapType(method.ReturnType));
        sb.Append($" {icall.Func} (");
        int pindex = 0;
        int aindex = 0;

        if (method.HasThis)
        {
            sb.Append("int");
            aindex++;
        }
        foreach (var p in method.Parameters)
        {
            if (aindex > 0)
            {
                sb.Append(",");
            }
            sb.Append(MapType(method.Parameters [pindex].ParameterType));
            pindex++;
            aindex++;
        }
        if (icall.Handles)
        {
            if (aindex > 0)
            {
                sb.Append(",");
            }
            sb.Append("int");
            pindex++;
        }
        sb.Append(");");
        return(sb.ToString());
    }
Пример #5
0
        public static Icall NewCall(string jklx)
        {
            Icall _call = null;

            switch (jklx)
            {
            case "SHL-1语音收费报价器":
                _call = new ts_call();
                break;

            case "led显示屏":
                _call = new ts_call_led();
                break;

            case "SYC-Q9语音显示器":
                _call = new ts_call_led_shyc();
                break;

            case "VFD8C语音显示器":
                _call = new ts_call_led_VFD8C();
                break;

            case "湖南光通显示器":
                _call = new ts_call_led_HNGT();
                break;

            case "AxCL2005_16W":
                _call = new ts_call_AxCL2005_16W();
                break;

            case "武汉北院叫号":      //戴月文开发的 实际上是武汉中心医院南院叫号,类型名称写错了
                _call = new ts_call_whzxyymz();
                break;

            case "武汉中心医院北院叫号":
                _call = new ts_call_whzxyybymz();
                break;


            case "上海通导语音报价器型号I":
                _call = new ts_call_vfd_TDKJ_BJ_I();
                break;

            case "上海通导语音报价器型号Ⅳ":    //与1型基本通用
                ts_call_vfd_TDKJ_BJ_I.kind = 4;
                _call = new ts_call_vfd_TDKJ_BJ_I();
                break;

            case "FGC01":
                _call = new ts_call_FGC01A();
                break;

            case "双屏LED":
                _call = new ts_call_led_cz();
                break;

            case "上海通导语音报价器邵阳第一人民医院":
                ts_call_vfd_TDKJ_BJ_SYRY.kind = 4;
                _call = new ts_call_vfd_TDKJ_BJ_SYRY();
                break;

            case "株洲中医院LED显示屏":
                _call = new ts_call_led_yx();
                break;

            case "ts_call_led_cnfy":    //常宁妇幼
                _call = new ts_call_led_cnfy();
                break;
            }

            return(_call);
        }
Пример #6
0
    void ProcessType(TypeDefinition type)
    {
        foreach (var method in type.Methods)
        {
            if ((method.ImplAttributes & MethodImplAttributes.InternalCall) == 0)
            {
                continue;
            }

            if (method.Name == ".ctor")
            {
                continue;
            }

            var klass_name = method.DeclaringType.FullName;
            if (!runtime_icalls.ContainsKey(klass_name))
            {
                // Registered at runtime
                continue;
            }

            var klass = runtime_icalls [method.DeclaringType.FullName];

            Icall icall = null;

            // Try name first
            if (klass.Icalls.ContainsKey(method.Name))
            {
                icall = klass.Icalls [method.Name];
            }
            if (icall == null)
            {
                // Then with signature
                var sig    = new StringBuilder(method.Name + "(");
                int pindex = 0;
                foreach (var par in method.Parameters)
                {
                    if (pindex > 0)
                    {
                        sig.Append(",");
                    }
                    var t = par.ParameterType;
                    AppendType(sig, t);
                    pindex++;
                }
                sig.Append(")");

                if (klass.Icalls.ContainsKey(sig.ToString()))
                {
                    icall = klass.Icalls [sig.ToString()];
                }
            }
            if (icall == null)
            {
                // Registered at runtime
                continue;
            }

            icall.Method     = method;
            icall.TokenIndex = (int)method.MetadataToken.RID;
            icall.Assembly   = method.DeclaringType.Module.Assembly.Name.Name;
            icalls.Add(icall);
        }
    }