示例#1
0
        void ShuttleDomain_SendAndReturnByRef(IServiceFunctionTest test)
        {
            ICommonService service1;
            ICommonService service2;

            _shuttleDomain.TryGetService(out service1);
            _shuttleDomain.TryGetService(out service2);
            ICommonService service;

            test.SendAndReturnByRef("Liu", 100, service1, ref service2, out service);

#if DOASSERT
            var age2        = service2.Age;
            var name2       = service2.Name;
            var nameLength2 = service2.NameLength;
            var firstName2  = service2.FirstName;
            var lastName2   = service2.LastName;

            var age3        = service.Age;
            var name3       = service.Name;
            var nameLength3 = service.NameLength;
            var firstName3  = service.FirstName;
            var lastName3   = service.LastName;

            if (age2 != 140 || name2 != "LiuJingyi" || nameLength2 != 5 || firstName2 != "0" || lastName2 != "4" ||
                age3 != 180 || name3 != "<Jingyi>Jingyi" || nameLength3 != 5 || firstName3 != "0" || lastName3 != "4")
            {
                throw new AssertionException();
            }
#endif
            #region  务端实现
            //ICommonService DoCreateOutCommonService(string s1, int i1, ICommonService serice)
            //{
            //    var result = new CommonService(i1 + serice.Age, s1 + serice.Name);
            //    var length = serice.NameLength;

            //    // Names 除了原来的内容之外,再加上 0-4 的 5 个数组
            //    for (int i = 0; i < length; i++)
            //        result.AddName(serice.GetName(i));
            //    for (int i = length; i < length + 5; i++)
            //        result.AddName((i - length).ToString());

            //    return result;
            //}

            //ICommonService DoCreateRefCommonService(string s1, int i1, ICommonService serice)
            //{
            //    var result = new CommonService(i1 + serice.Age, s1 + serice.Name);
            //    var length = serice.NameLength;

            //    // Names 除了原来的内容之外,再加上 0-4 的 5 个数组
            //    for (int i = 0; i < length; i++)
            //        result.AddName(serice.GetName(i));
            //    for (int i = length; i < length + 5; i++)
            //        result.AddName((i - length).ToString());

            //    return result;
            //}

            //public void SendAndReturnByRef(string s1, int i1, ICommonService serice1, ref ICommonService serice2, out ICommonService serice3)
            //{
            //    serice2 = DoCreateRefCommonService(s1, i1, serice1);
            //    serice3 = DoCreateOutCommonService("<" + serice1.Name + ">", i1 + serice1.Age, serice1);
            //}
            #endregion
        }