当前位置: 首页 > news >正文

电子商务网站开发的历程世界著名建筑设计公司

电子商务网站开发的历程,世界著名建筑设计公司,长沙网站建站模板,免费咨询中心使用Windows 10环境,VS2019进行ICE用例开发 用例结构:客户端和服务端 关键技术:集成ICE环境,可以创建ice文件并自动生成对应的cs文件 1.环境安装 ICE Build插件安装。安装以后,就可以在项目中插入ice文件 2.代码实…

使用Windows 10环境,VS2019进行ICE用例开发

用例结构:客户端和服务端

关键技术:集成ICE环境,可以创建ice文件并自动生成对应的cs文件

1.环境安装

ICE Build插件安装。安装以后,就可以在项目中插入ice文件

2.代码实现

   创建两个控制台程序(Client和Server),基于.Net FrameWork 4.6.1平台。

    分别在Nuget中进行引用

    然后,创建ICE文件,文件内容如下

#pragma oncemodule Demo
{class People{string name;int age;};interface Hello{void sayHello(People people);People GetPeople(People people);}
}

接着分别生成项目。就会自动生成generated文件夹

                    

然后实现服务端服务

namespace Server
{public class PrinterI : Demo.HelloDisp_{public override People GetPeople(People people, Current current = null){return people;}public override void sayHello(People people, Current current = null){Console.WriteLine(people.name+"今年已经"+people.age+"岁啦!");}}
}

服务端启动代码

class Program{static void Main(string[] args){try{using (Ice.Communicator communicator = Ice.Util.initialize()){var adapter =communicator.createObjectAdapterWithEndpoints("SimplePrinterAdapter", "default -h localhost -p 10000");adapter.add(new PrinterI(), Ice.Util.stringToIdentity("SimplePrinter"));adapter.activate();Console.WriteLine("启动成功");communicator.waitForShutdown();Console.ReadLine();}}catch (Exception er){Console.Error.WriteLine(er);return;}}}

最后在客户端进行调用;

 class Program{static void Main(string[] args){try{using (Ice.Communicator communicator = Ice.Util.initialize()){var obj = communicator.stringToProxy("SimplePrinter:default -h localhost -p 10000");var printer = HelloPrxHelper.checkedCast(obj);if (printer == null){throw new ApplicationException("Invalid proxy");}People people = new People() { Name = "小王", Age = 99 , Sex = "nv"};printer.sayHello(people);var res = printer.GetPeople(people);Console.WriteLine(res.Name+"--"+ res.Address+"--"+ res.Sex);Console.ReadLine();}}catch (Exception ex){Console.Error.WriteLine(ex.Message);return;}}}

        小伙伴可能已经发现,客户端的People对象和ice文件中定义的People对象不一样,实际上,在客户端本地新建文件使用部分类定义的形式对自动生成的People对象进行了扩充实验。

    public partial class People : IPeople{public int Age { get => this.age; set => this.age = value; }public string Address { get => this.name;  }public string Name { get => this.name; set => this.name = value; }string sex;public string Sex { get => this.sex; set => this.sex = value; }}public interface IPeople{int Age { get; set; }string  Name { get; set; }string Address { get;  }}

那么扩充有什么作用?扩充People对象,可以满足客户端实现更加灵活的业务,不必要和服务端的People定义完全一致,可以正常通讯的前提是,客户端和服务端都是使用相同的ice文件生成的,并且客户端扩充的People对象需要和服务端存在相同名称的成员。(允许客户端和服务端相同成员的访问级别不一致)

允许通信的原因是?ICE无法识别客户端的这种改变?从侧面验证了Ice运行过程中,对对象的赋值是按照字段或者属性名称的,不是整体序列化?

附官方用例:Writing an Ice Application with C-Sharp - Iceicon-default.png?t=N7T8https://doc.zeroc.com/ice/3.7/hello-world-application/writing-an-ice-application-with-c-sharp

http://www.15wanjia.com/news/195307.html

相关文章:

  • 申请个人网站微信做单30元一单
  • 200万做网站威海网站定制
  • 网站职业技术培训学校南宁百度关键词排名公司
  • 打开网站自动跳转代码网站建设工作室+怎么样
  • 马鞍山建设银行网站网站分享模板
  • 怎么做盗版电影网站微信设计网站
  • 棋牌网站开发工程师黑龙江最新通知今天
  • 在哪个网站上做推广作用好网页开发应用软件
  • 张家界官方网站网站主页图片尺寸
  • 德芙巧克力的软文500字网站 优化 分析
  • ps切片做网站千峰培训出来好就业吗
  • 100款不良网站进入窗口软件python网站开发工程师
  • 网站代运营公司排名wordpress添加友链申请
  • 深喉咙企业网站生成系统线下推广图片
  • 专业做能源招聘的网站做家常菜的网站
  • 免费个人网站源码php企业网站制作简介
  • seo网站优化服务合同广州各区最新动态
  • 电脑网站模版广州黄浦区建设局网站
  • 怎样在门户网站做 推广做违规网站
  • 天河区门户网站招生考试如何做网络推广网站
  • 网站在哪里购买北京建网站的公司哪个比较好
  • 商城网站支付宝接口吴忠市建设网站
  • 长沙做企业网站的公司怎样打死网站
  • 学网站建设的好处页面制作多少钱
  • 网站推广和优化教程网站项目计划说明书
  • 网站空间面板网站每年服务费
  • 淘宝网站推广策略网站建设公司权威机构
  • 成都网站建站推广如何申请公司邮箱账号
  • 长春网站快速排名提升更新公司网站内容需要
  • 网站空间的后台控制面板桃江县建设局网站