【WCF--初入江湖】13 实战
13 实战
在线升级
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.ServiceModel;
using System.IO;
using System.Reflection;
namespace load
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//进入
private void button1_Click(object sender, EventArgs e)
{
//下载客户端程序
NetTcpBinding bind = new NetTcpBinding();
bind.MaxReceivedMessageSize = 9999999;
bind.ReaderQuotas.MaxArrayLength = 99999999;
bind.ReaderQuotas.MaxStringContentLength = 99999999;
EndpointAddress address = new EndpointAddress("net.tcp://localhost:5400/sell");
ChannelFactory<Contracts.ISellOpration> factory = new ChannelFactory<Contracts.ISellOpration>(bind, address);
byte[] bt = factory.CreateChannel().download();
//把bt转成dll文件
FileStream stream = new FileStream(Application.StartupPath + "/winClient.dll", FileMode.Create);
stream.Write(bt, 0, bt.Length);
stream.Close();
factory.Close();
//启动客户端程序(dll)
Assembly ass = Assembly.LoadFile(Application.StartupPath + "/winClient.dll");
Type tp = ass.GetType("winClient.frmMain");
Form frm = (Form)Activator.CreateInstance(tp);
frm.Show();
}
}
}
ISellOpration.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
namespace Contracts
{
[ServiceContract]
public interface ISellOpration
{
//商品进货
[OperationContract]
int addstockBill(Bill bill);
//商品销售
[OperationContract]
int addSellBill(Bill bill);
//下载新版本的客户应用程序
[OperationContract]
byte[] download();
}
}
ServiceOpration.cs
public class ServiceOpration:Contracts.ISellOpration
{
..............
//下载客户端
public byte[] download()
{
FileStream stream = new FileStream(Application.StartupPath+"/winClient.dll", FileMode.Open, FileAccess.Read);
byte[] bt = new byte[stream.Length];
stream.Read(bt, 0, bt.Length);
stream.Close();
return bt;
}
winClient.dll是把WinForm项目的参数类型从“Window应用程序”改成“类库”。
其中
public partial class frmMain : Form


浙公网安备 33010602011771号