ldj/wince/DeiNiuWmsWINCE/wcfClients/WcfHelp.cs

219 lines
7.3 KiB
C#
Raw Normal View History

2023-05-23 16:13:17 +08:00
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Xml.Linq;
using System.Reflection;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.Runtime.Serialization;
using System.Xml;
using System.IO;
using DeiNiu.Wms.CE.Util;
using DeiNiu.Wms.CE.utils;
namespace DeiNiu.Wms.CE
{
public static class LoginInfo
{
public static int UserId { get; set; }
public static string Password { get; set; }
public static string Token { get; set; }
public static string Account { get; set; }
public static bool IsRemember { get; set; }
}
class WcfHelp
{
//static string url = Assembly.GetExecutingAssembly().GetName().CodeBase.Substring(0, Assembly.GetExecutingAssembly().GetName().CodeBase.LastIndexOf('\\') + 1) + "settings.xml";
// static XDocument doc = XDocument.Load (url);
//static string host;
//static string port;
static string svrUrl;
static string iniFile = Assembly.GetExecutingAssembly().GetName().CodeBase.Substring(0,
Assembly.GetExecutingAssembly().GetName().CodeBase.LastIndexOf('\\') + 1) + "host.ini";
public static string iniHostPort;
static string getPath()
{
return Assembly.GetExecutingAssembly().GetName().CodeBase.Substring(0,
Assembly.GetExecutingAssembly().GetName().CodeBase.LastIndexOf('\\') + 1);
}
public static void updateConfig(string newHost, string newPort)
{
/* try
{
svrUrl = "";
string Path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase.ToString()) + "\\settings.xml";
XmlDocument Doc = new XmlDocument();
Doc.Load(Path);
XmlNode ip = (XmlNode)Doc.SelectSingleNode("/Root/Host");
ip.InnerText = newHost +":" +newPort;
Doc.Save(Path);
// return true;
}
catch(Exception e)
{
throw e;
// return false;
}
*/
// XDocument xmlDoc = XDocument.Load(url);
// doc.Element("Root").Element("Host").Value = host;
// doc.Element("Root").Element("Port").Value = port;
// doc.Root.Element("Port").SetValue(port);
// doc.Root.Element("Host").Value = host;
// XmlElement nodePort = (XmlElement)doc.Root.Element("Port");
// doc.Root.Element("Port").Value = port;
//doc.Save(url);
svrUrl = "";
WriteIni(newHost, newPort);
// string url = Assembly.GetExecutingAssembly().GetName().CodeBase.Substring(0, Assembly.GetExecutingAssembly().GetName().CodeBase.LastIndexOf('\\') + 1) + "newsettings.xml";
/*
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(url);
var root = xmlDoc.DocumentElement;//取到根结点
XmlElement node1 = (XmlElement)xmlDoc.SelectSingleNode("Root/Host");
node1.InnerText = host ;
XmlElement node2 = (XmlElement)xmlDoc.SelectSingleNode("Root/Port");
node2.InnerText = port;
xmlDoc.Save(url);
string configFile = @"config.xml";
XmlDocument xml = new XmlDocument();
XmlElement element = xml.CreateElement("Root");
xml.AppendChild(element);
//---create the <LastAccess> element---
element = xml.CreateElement("Host");
element.InnerText = host;
xml.DocumentElement.AppendChild(element);
//---create the <LastSearchString> element---
element = xml.CreateElement("Port");
element.InnerText = port;
xml.DocumentElement.AppendChild(element);
xml.Save(configFile);
* */
}
public static void WriteIni(string newHost, string newPort)
{
iniHostPort = newHost + ":" + newPort;
FileStream fs = new FileStream(iniFile, FileMode.Create);
//获得字节数组
byte[] data = System.Text.Encoding.Default.GetBytes(iniHostPort);
//开始写入
fs.Write(data, 0, data.Length);
//清空缓冲区、关闭流
fs.Flush();
fs.Close();
}
public static string ReadIni()
{
if (!File.Exists(iniFile))
{
WriteIni("","");
}
StreamReader sr = new StreamReader(iniFile, Encoding.Default);
String line;
line = sr.ReadLine();
sr.Close();
return line;
}
public static void writeFile(string file,string content){
FileStream fs = new FileStream(file, FileMode.Append);
//获得字节数组
byte[] data = System.Text.Encoding.Default.GetBytes(content);
//开始写入
fs.Write(data, 0, data.Length);
//清空缓冲区、关闭流
fs.Flush();
fs.Close();
}
public static string readSN(){
string idFile = getPath() + "deiniu.ini";
if (!File.Exists(idFile))
{
#if debug
writeFile(idFile, Utils.Encrypt(NetUtil.GetMac()));
#endif
return "";
}
StreamReader sr = new StreamReader(idFile, Encoding.Default);
String line;
line = sr.ReadLine();
sr.Close();
return line;
}
public static string BuildUrl(string svrName)
{
if (string.IsNullOrEmpty(iniHostPort))
{
//host = doc.Root.Element("Host").Value;
//port = doc.Root.Element("Port").Value;
iniHostPort = ReadIni();
// iniHostPort = doc.Root.Element("Host").Value;
}
if (string.IsNullOrEmpty(svrUrl))
{
//svrUrl=string.Format("http://{0}:{1}/{2}.svc", host, port, svrName);
svrUrl = string.Format("http://{0}/{1}.svc", iniHostPort, svrName);
}
return svrUrl;
}
public static BasicHttpBinding getBasicBinding()
{
BasicHttpBinding binding= new BasicHttpBinding();
binding.MaxReceivedMessageSize = int.MaxValue;
binding.MaxBufferPoolSize = int.MaxValue;
binding.MaxBufferSize = int.MaxValue;
return binding;
}
public static EndpointAddress getEndpoint(string svrName){
// NetDataContractSerializer serializer = new NetDataContractSerializer();
string remoteAddress = WcfHelp.BuildUrl(svrName); //get address
EndpointAddress endpoint = new EndpointAddress(remoteAddress);
//MessageHeader hdUserId = MessageHeader.CreateHeader("UserId", "www.deinu.com", LoginInfo.UserId, serializer);
//MessageHeader hdToken = MessageHeader.CreateHeader("Token", "www.deinu.com", LoginInfo.Token, serializer);
// endpoint.Headers.
//endpoint.Headers.Add(hdUserId);
//endpoint.Headers.Add(hdToken);
return endpoint;
}
}
}