Time of Update: 2018-12-07
所謂的序列化就是是將對象轉換為容易傳輸的格式的過程,一般情況下轉化打流檔案,放入記憶體或者IO檔案中。例如,可以序列化一個對象,然後使用 HTTP 通過 Internet 在用戶端和伺服器之間傳輸該對象,或者和其它應用程式共用使用。反之,還原序列化根據流重新構造對象。 .NET內建的有兩種序列化對象的方式,Xml和binary的,XML 序列化不轉換方法、索引器、私人欄位或唯讀屬性(唯讀集合除外)。要序列化對象的所有欄位和屬性(公用的和私人的),請使用
Time of Update: 2018-12-07
最近項目需要,需要在winform中類比表單將資料提交至伺服器,發現單獨提交索引值對很容易實現,單獨實現上傳檔案也很容易實現。要是同時提交索引值對和檔案,比較麻煩。在百度Google了大半天沒有任何收穫。無奈之下,按照 黑月.Net的 的思路去自己寫。經過奮鬥 終於搞定。方法如下: public WebResponse SubmitData(string fileName, Uri uri, string[] keys, string[] values){string boundary = "-
Time of Update: 2018-12-07
方法一、System.Net.WebClient WebClientObj = new System.Net.WebClient(); System.Collections.Specialized.NameValueCollection PostVars = new System.Collections.Specialized.NameValueCollection(); PostVars.Add("A1","0"); PostVars.Add("A2","0");
Time of Update: 2018-12-07
Book DescriptionExpert guidance for those programming today’s dual-core processors PCsAs PC processors explode from one or two to now eight processors, there is an urgent need for programmers to master concurrent programming. This book dives deep
Time of Update: 2018-12-07
(1)控制台應用程式下示範插入圖片public void InsertIMG() { //將需要儲存的圖片讀取為資料流 FileStream fs = new FileStream(@"E:\c.jpg", FileMode.Open,FileAccess.Read); Byte[] btye2 = new byte[fs.Length]; fs.Read(btye2 , 0, Convert.
Time of Update: 2018-12-07
朋友說開發電信的MMS,其實需要圖片作為附件放在調用WebService介面上,使用Http的Content-Type: Multipart/Related;來發送,真讓人感覺不倫不類的。不知道為什麼不設計成一個欄位是BASE64編碼得了唄。 難道只能用朋友說的拼欄位的方法了不? 我用Reflect分析了一下,貌似這樣也可以實現。 我們知道,我們添加一個WebService引用時,會自動產生從 SoapHttpClientProtocol 的子類。我的想法是,我們寫一個
Time of Update: 2018-12-07
要序列化的對象的類:[Serializable]public class Person{private string name;public string Name{get{return name;}set{name=value;}}public string Sex;public int Age=31;public Course[] Courses;public Person(){}public Person(string Name){name=Name;Sex='男';}
Time of Update: 2018-12-07
今天測試.net 2.0的WebService,發現了一個大問題。就是無法擷取參數,參數永遠是null。當然了使用.net調用 沒有任何問題,web測試頁也正常。不論是Delphi7還是java調用的結果的都是一樣的,難道是.net 2.0的Bug?測試結果發現:實值型別參數全部為預設值,參考型別全部為nullWebService的代碼如下:[WebMethod]public string EchoString(string args){return
Time of Update: 2018-12-07
NetworkInterface[] NetworkInterfaces = NetworkInterface.GetAllNetworkInterfaces();foreach (NetworkInterface NetworkIntf in NetworkInterfaces){ IPInterfaceProperties IPInterfaceProperties = NetworkIntf.GetIPProperties();
Time of Update: 2018-12-07
一、已最小化的視窗點擊“X”或“Alt F4”時,已最小化的視窗,如:protected override void WndProc(ref Message m){const int WM_SYSCOMMAND = 0x0112;const int SC_CLOSE = 0xF060;if (m.Msg == WM_SYSCOMMAND && (int) m.WParam == SC_CLOSE){// User clicked close
Time of Update: 2018-12-07
解決方案:HTTPRIO1的屬性---HttpWebNode--UseUtf8InHeader設定為true 代碼片斷:function TLoginManager.Get_LoginManagerSoap: ILoginManagerSoap;const defSvc='LoginManager'; defPrt='LoginManagerSoap';var RIO: THTTPRIO;begin Result:= nil; RIO:= THTTPRIO.Create(nil);
Time of Update: 2018-12-07
using System;using System.Windows.Forms;using System.Runtime.InteropServices;using System.Reflection;namespace HookDll{ public class HookDll { private KBDLLHOOKSTRUCT kbdllhs; private IntPtr iHookHandle =IntPtr.Zero; private GCHandle _hookProcH
Time of Update: 2018-12-07
//注意要引用WinSock2的lib檔案,否則編譯不會通過#include <WINSOCK2.H>#include <stdio.h>int main(int argc,char** argv){ WSADATA wsaData; char HostName[256]; hostent* HostEnt; protoent* ProtoEnt; in_addr** Addr; char* IPAddr; SOCKET Socket; sockaddr_in Sin;
Time of Update: 2018-12-07
1.把C#當成一門新的語言學習(和C沒啥關係!真的。);2.看專業的書籍,不要因為他們很難而我們自己是初學者所以就不看;3.不要被VC、BCB、BC、MC、TC等詞彙所迷惑——他們都是整合式開發環境,而我們要學的是一門語言;4.不要放過任何一個看上去很簡單的小編程問題——他們往往並不那麼簡單,或者可以引伸出很多知識點;5.學class並不難,template、STL、generic
Time of Update: 2018-12-07
using System; using System.Runtime.InteropServices; namespace UtilityControl { /// <summary> /// 關於IP地址的若干操作 /// </summary> public class IP { public IP() { // //
Time of Update: 2018-12-07
using System.Runtime.InteropServices;using System.Management;using System;public class HardwareInfo ...{ //取機器名 public string GetHostName() ...{ return System.Net.Dns.GetHostName(); } //取CPU編號 public String GetCpuID()
Time of Update: 2018-12-07
(本系列文章由檸檬的(lc_mtt)原創,轉載請註明出處,謝謝~) 讓我們詳細解釋一下 Shell 編程中最基本的一些函數、結構體和枚舉。 SHGetDesktopFolder 擷取案頭的 IShellFolder 介面[DllImport("shell32.dll")] public static extern Int32 SHGetDesktopFolder(out IntPtr ppshf);要使用這個函數,必須先定義一個 IntPtr 指標。然後通過指標,使用
Time of Update: 2018-12-07
(本系列文章由檸檬的(lc_mtt)原創,轉載請註明出處,謝謝~) 這裡解釋上一節中擷取名稱的方法 GetDisplayNameOf 定義:void GetDisplayNameOf( IntPtr pidl, SHGNO uFlags, IntPtr lpName);該方法是用來轉換PIDL成為可顯示的名稱字串。PIDL必須是相對於對象的父目錄的。換句話說,它必須包含一個非空的SHITEMID
Time of Update: 2018-12-07
(本系列文章由檸檬的(lc_mtt)原創,轉載請註明出處,謝謝~) 執行 許多人都知道 ShellExecute ,用於執行一個外部命令。但對於 IShellFoloder 對象來說,它的執行命令,都在它的 ContextMenu 裡面了。記得前幾節說過如何直接調用 ContextMenu 裡的項,因此,執行一個 IShellFoloder,也無非是調用它的 ContextMenu 裡預設的項而已://存放 PIDL 的數組 IntPtr[] pidls = new IntPtr[1
Time of Update: 2018-12-07
(本系列文章由檸檬的(lc_mtt)原創,轉載請註明出處,謝謝~) 上一節說到如何彈出 IShellFolder 的操作功能表,也就是 IContextMenu。有時候我們需要在這個菜單上面,加入一些屬於自己的功能表項目。舉個例子,你開啟資源管理員,查看左邊分類樹的右鍵菜單,會發現頂層多了一個摺疊/展開的功能表項目。好,我們也動手來加入這個功能表項目。 修改例子3,我們找到 QueryContextMenu 處,這時候提供了一個菜單控制代碼://提供一個彈出式菜單的控制代碼 IntPtr