当前位置:操作系统 > 安卓/Android >>

andoird + wcf开发实例

实例开发架构:android调用wcf service服务(注意是service服务,不是restful风格,后面再讲restful风格的调用)。
动手之前,先一个ksoap2-android,它是我们调用wcf服务的工具。在官网上下载过好几次都不能用,后来发现原来下载的不是完整的。所以大家可以到这下载http://download.csdn.net/detail/leesmn/5162649。
wcf部分(使用的是VS2012):
1、新建wcf类库odbServiceLib。定义IService,以及定义数据约定
namespace odbServiceLib
{
    // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService1”。
    [ServiceContract]
    public inte易做图ce IService
    {
        [OperationContract]
        int PostDaignoseJson(string jsonStr);
        [OperationContract]
        string PostConsultJson(string jsonStr);
        [OperationContract]
        Consult GetConsult(string imei);
        // TODO: 在此添加您的服务操作
    }
    // 使用下面示例中说明的数据约定将复合类型添加到服务操作。
    // 可以将 XSD 文件添加到项目中。在生成项目后,可以通过命名空间“odbServiceLib.ContractType”直接使用其中定义的数据类型。
    [DataContract]
    public class Diagnose
    {
        [DataMember]
        public string imei { get; set; }
        [DataMember]
        public double longitude { get; set; }
        [DataMember]
        public double latitude { get; set; }
        [DataMember]
        public string datetime { get; set; }
        [DataMember]
        public int type { get; set; }
        [DataMember]
        public string content { get; set; }
    }
    [DataContract]
    public class Consult
    {
        [DataMember]
        public string imei { get; set; }
        [DataMember]
        public double longitude { get; set; }
        [DataMember]
        public double latitude { get; set; }
        [DataMember]
        public string datetime { get; set; }
        [DataMember]
        public int type { get; set; }
        [DataMember]
        public string text { get; set; }
        [DataMember]
        public string imgstr { get; set; }
        [DataMember]
        public byte[] img1 { get; set; }
    }
}
2、实现Service。在该段代码中本人用了vs自带的ado.net entity framwork作为orm操作数据库
namespace odbServiceLib
{
    // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的类名“Service1”。
    public class Service : IService
    {
        public int PostDaignoseJson(string jsonStr)
        {
            Diagnose d;
            using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonStr)))
            {
                DataContractJsonSerializer serializer1 = new DataContractJsonSerializer(typeof(Diagnose));
                d = (Diagnose)serializer1.ReadObject(ms);
    
            }
            //System.Data.Common.DbTransaction tran = null;
            int i = 0;
            try
            {
                using (carobdEntities ctx = new carobdEntities())
                {
                    ctx.Database.Connection.Open();
                    //tran = ctx.Database.Connection.BeginTransaction();
                    StringBuilder strb = new StringBuilder();
                    strb.Append("create table if not EXISTS diag");
                    strb.Append(d.imei);
                    strb.Append("(id  int not null auto_increment,");
                    strb.Append("longitude double,");
                    strb.Append("latitude double,");
                    strb.Append("datetime datetime,");
                    strb.Append("type int,");
                    strb.Append("content varchar(500),");
                    strb.Append("PRIMARY KEY (id) )");
                    if (ctx.Database.ExecuteSqlCommand(strb.ToString()) > 0)
                        ctx.SaveChanges();
                    strb.Clear();
                    strb.Append("insert into diag");
                    strb.Append(d.imei);
                    strb.Append("(longitude,latitude,datetime,type,content)values(");
                    strb.Append(d.longitude);
                    strb.Append(",");
                    strb.Append(d.latitude);
                    strb.Append(",'");
                    strb.Append(d.datetime);
                    strb.Append("',");
补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,