
置顶随笔
System里有这么几种类:
CTS(通用类别),比如:Int32、Boolean、Char等等,最基础的Object也在此。
Console:不用多说了吧,都知道它的作用。
Math:数学公式类。
Enviroment:获得环境信息,可以用来获得当前exe的路径,以及命令行参数等等。
GC:垃圾回收机制。
Random:随机数。
System的下一级命名空间就更多了,包括这些:
1、Collections:集合框架,如 Hashtable、List、Queue等等都在这里,尤其在vs2005里,又增加了泛形。
2、ComponentModel:用于创建.Net框架的组件基础类。
3、Configuration:提供了访问应用程序配置文件中信息的类。
4、Data:大多数人都用的到的类库,访问数据库对象。
5、Diagnostics:用于调试的类库,很少人会用到它,事实上这里有不少东西很有用,比如:Trace,这就和以前的MFC里的Trace一样的用处。
6、DirectoryServices:这也很少用到,但是估计以后会用的比较多,因为访问目录服务需要用到它,以后很多单点登陆的集成应用都要集成LDAP,这里就是提供如何访问LDAP目录服务的类。
7、Drawing:画图类库,即所谓的GDI+。
8、EnterpriseServices:企业级服务,事实上是包装了一层Com+事务的支持。用于分布式应用。
9、Globalization:国际化。
10、IO:最常用的类库,读写IO。
11、Management:提供了访问WMI管理设备的接口。事实上我觉得没多大用处,更经常是用以前的VC++ 6.0来处理这些WMI接口。
12、Messaging:消息服务,访问MSMQ的类库。
13、Net:访问网络。
14、Reflection:很多人觉得神奇的一个类库,即所谓的“反射”,事实上这里的类的作用远远不止用于反射。
15、Resources:访问资源文件的类库。就像以前的vc++里用于访问res、rc等文件一样
16、Runtime:底层开发人员会感兴趣的地方,下面又分为很多个子空间,比如:Remoting、Serialization等。
17、Security:安全相关的类库。
18、ServiceProcess:用于创建Windows服务的类库。
19、Text:字符编码互相转换的地方,另外还有一个有趣的东西,正则表达式解析。
20、Timer:定时器。
21、Web:asp.net、web service都依赖的类库。
22、Windows.Forms:不用多说了吧。
23、XML:处理XML的地方。
posted @
2007-06-22 14:43 网碾平 阅读(70) |
评论 (0) |
编辑

2008年6月16日
/// <summary> 从DLL获取对象
/// </summary>
/// <param name="PControl"></param>
/// <param name="dllPath"></param>
/// <param name="NameSpacePath"></param>
/// <param name="className"></param>
public object LoadObjectByDll(string dllPath, string NameSpacePath, string className,bool isExePreLoad)
{
try
{
//加载控件
System.Reflection.Assembly assembly = System.Reflection.Assembly.LoadFrom(dllPath);
//获得类(型)
Type type = assembly.GetType(String.Format("{0}.{1}", NameSpacePath, className), false, true);
//设置筛选标志
System.Reflection.BindingFlags bflags = System.Reflection.BindingFlags.DeclaredOnly | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance;
//调用构造函数并获得对象
Object obj = type.InvokeMember(className, bflags | System.Reflection.BindingFlags.CreateInstance, null, null, null);
//if (isExePreLoad)
//{
// object obj2;
// PropertyInfo info = type.GetProperty("isPreLoad");
// obj2 = info.GetValue(obj,null);
// //obj2 = type.InvokeMember("isPreLoad", BindingFlags.GetProperty | BindingFlags.Public, null, (IPlugin)obj, null);
// if (obj2.ToString().ToLower() == "true")
// {
// MethodInfo mi = type.GetMethod("PreLoad");
// mi.Invoke(obj, null);
// }
//}
return obj;
}
catch (Exception ex)
{
throw ex;
//MessageBox.Show("加载插件失败!请验证插件的正确性...", "错误");
}
}
posted @
2008-06-16 16:22 网碾平 阅读(28) |
评论 (0) |
编辑

2008年4月24日
格式化整个块 Ctrl+K+D
竖向区域选择 Alt键,拖运鼠标
查找匹配的标记
Ctrl+] //使用时光标定位到标记处,如: {},()等
显亮两个匹配的标识之间的所有代码 Ctrl-Shift-]
跳转的方法的定义 F12
实用预定义的代码片断 Tab //写For之类的后,按Tab
设计视图和代码(cs)文件切换 F7
字符串大小写切换 Ctrl+Shift+U Ctrl+U
待续.......
也请各位网友回复添加,请保证正确
posted @
2008-04-24 15:57 网碾平 阅读(61) |
评论 (0) |
编辑

2008年3月24日
一. .NET连接Oralce数据库
<add name="ConnectionString" connectionString="Data Source=Oralce客户端中显示的数据库名称;Persist Security Info=True;User ID=Oralce客户端中显示的SID;Password=密码;Unicode=True"
providerName="System.Data.OracleClient" />
Oracle参数以:开头
二. 使用ODBC ORalce连接
选择Oralce in驱动,Data Source Name为DNS名称(根据自己需要填写),TNSServiceName为
Oralce客户端中显示的数据库名称,然后输入用户名和密码即可
以下注意:
1. 安装Oralce Client 2.添加 ODBC,我添加的是系统DNS 3.在程序中连接ODBC
常见问题:
1. 由于系统错误 5 (Oracle in OraHome92),指定驱动
程序无法加载。
文件夹权限问题 , 因为ODBC要去oracle92的安装目录中读取驱动
启动IIS进程账号(IWAP_机器名)对ora92没有任何权限,给加上就可以了。
更改方法:
1。找到oracle92的安装目录,例如:D:\oracle\ora92
2.察看文件夹的属性--〉安全,把IWAP_user这个账号加进去,只要有读取权限就能运行了。
也可以把这个账号加到具有访问Ora92文件夹的用户组中,比如系统用户,不过可能不太安权,呵呵
posted @
2008-03-24 16:50 网碾平 阅读(77) |
评论 (0) |
编辑

2008年3月14日
using System;
using System.Windows.Forms;
using System.Web;
using System.Security.Permissions;
namespace WindowsFormsApplication2
{
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
public partial class JsCallWinFun : Form
{
private WebBrowser webBrowser1 = new WebBrowser();
private Button button1 = new Button();
//[STAThread]
//public static void Main()
//{
// Application.EnableVisualStyles();
// Application.Run(new Form1());
//}
public JsCallWinFun()
{
button1.Text = "call script code from client code";
button1.Dock = DockStyle.Top;
button1.Click += new EventHandler(button1_Click);
webBrowser1.Dock = DockStyle.Fill;
Controls.Add(webBrowser1);
Controls.Add(button1);
Load += new EventHandler(Form1_Load);
}
private void Form1_Load(object sender, EventArgs e)
{//客户端脚本调用WinFrom方法示例
webBrowser1.AllowWebBrowserDrop = false;
webBrowser1.IsWebBrowserContextMenuEnabled = true;
webBrowser1.WebBrowserShortcutsEnabled = false;
webBrowser1.ObjectForScripting = this;
// Uncomment the following line when you are finished debugging.
//webBrowser1.ScriptErrorsSuppressed = true;
webBrowser1.DocumentText =
"<html><head><script>" +
"function test(message) { alert(message); }" +
"</script></head><body><button " +
"onclick=\"window.external.Test('called from script code')\">" +
"call client code from script code</button>" +
"</body></html>";
}
public void Test(String message)
{
MessageBox.Show(message, "client code");
}
private void button1_Click(object sender, EventArgs e)
{
//WinFrom调用客户端脚本示例
webBrowser1.Document.InvokeScript("test",
new String[] { "called from client code" });
}
}
}
posted @
2008-03-14 17:01 网碾平 阅读(134) |
评论 (0) |
编辑

/**//// <summary> 登录
/// </summary>
/// <param name="url"></param>
/// <param name="paramList"></param>
/// <returns></returns>
public static string Login(String url, String paramList)

{
HttpWebResponse res = null;
string strResult = "";
try

{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.AllowAutoRedirect = false;
CookieContainer cookieCon = new CookieContainer();
req.CookieContainer = cookieCon;
StringBuilder UrlEncoded = new StringBuilder();

Char[] reserved =
{ '?', '=', '&' };
byte[] SomeBytes = null;
if (paramList != null)

{
int i = 0, j;
while (i < paramList.Length)

{
j = paramList.IndexOfAny(reserved, i);
if (j == -1)

{
UrlEncoded.Append(HttpUtility.UrlEncode(paramList.Substring(i, paramList.Length - i)));
break;
}
UrlEncoded.Append(HttpUtility.UrlEncode(paramList.Substring(i, j - i)));
UrlEncoded.Append(paramList.Substring(j, 1));
i = j + 1;
}
SomeBytes = Encoding.UTF8.GetBytes(UrlEncoded.ToString());
req.ContentLength = SomeBytes.Length;
Stream newStream = req.GetRequestStream();
newStream.Write(SomeBytes, 0, SomeBytes.Length);
newStream.Close();
}
else

{
req.ContentLength = 0;
}

res = (HttpWebResponse)req.GetResponse();
cookieheader = req.CookieContainer.GetCookieHeader(new Uri(url));
Stream ReceiveStream = res.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding("GBK");
StreamReader sr = new StreamReader(ReceiveStream, encode);
Char[] read = new Char[256];
int count = sr.Read(read, 0, 256);
while (count > 0)

{
String str = new String(read, 0, count);
strResult += str;
count = sr.Read(read, 0, 256);
}
}
catch (Exception e)

{
strResult = e.ToString();
}
finally

{
if (res != null)

{
res.Close();
}
}
return strResult;
}

/**//// <summary> 获取页面HTML
/// </summary>
/// <param name="url"></param>
/// <param name="paramList"></param>
/// <returns></returns>
public static string getPage(String url, String paramList)

{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Headers["If-None-Match"] = "36d0ed736e88c71:d9f";
req.Referer = "http://website/login.do";
CookieContainer cookieCon = new CookieContainer();
req.CookieContainer = cookieCon;
req.CookieContainer.SetCookies(new Uri(url), cookieheader);
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream(),Encoding.Default);
string strResult = sr.ReadToEnd();
sr.Close();
return strResult;
}
调用:
string postData = "userName=admin&password=pass&area=2006&Submit=%B5%C7+%C2%BC";
string strLogin, strResult;
strLogin = Login("http://website/login.do", postData);
strResult = getPage("http://website/tohjtree.do", "");
//输出
this.webBrowser1.Document.Write(strResult);
posted @
2008-03-14 16:55 网碾平 阅读(314) |
评论 (0) |
编辑

2008年3月10日
<%@ Page Language="C#" %>
<!DOCTYPE Html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html XMLns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Client Event Example</title>
<style type="text/Css">
#OuterPanel { width: 600px; height: 200px; border: 2px solid blue; }
#NestedPanel { width: 596px; height: 60px; border: 2px solid green;
margin-left:5 px; margin-right:5px; margin-bottom:5px;}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="ClientEventTest.js" />
</Scripts>
</asp:ScriptManager>
<asp:UpdatePanel ID="OuterPanel" UpdateMode="Conditional" runat="server">
<ContentTemplate>
Postbacks from inside the outer panel and inner panel are
asynchronous postbacks. PRM = Sys.WebForms.PageRequestManager. APP = Sys.Application.
<br /><br />
<asp:Button ID="OPButton1" Text="Outer Panel Button" runat="server" />
Last updated on
<%= DateTime.Now.ToString() %>
<br /><br />
<asp:UpdatePanel ID="NestedPanel" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:Button ID="NPButton1" Text="Nested Panel 1 Button" runat="server" />
Last updated on
<%= DateTime.Now.ToString() %>
<br />
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</asp:UpdatePanel>
<input type="button" onclick="Clear();" value="Clear" />
<asp:Button ID="FullPostBack" runat="server" Text="Full Postback" />
<a href="http://www.microsoft.com">Test Window Unload</a>
<br />
<span id="ClientEvents"></span>
</div>
<script type="text/javascript">
// Hook up Application event handlers.
var app = Sys.Application;
app.add_load(ApplicationLoad);
app.add_init(ApplicationInit);
app.add_disposing(ApplicationDisposing);
app.add_unload(ApplicationUnload);
// Application event handlers for component developers.
function ApplicationInit(sender) {
var prm = Sys.WebForms.PageRequestManager.getInstance();
if (!prm.get_isInAsyncPostBack())
{
prm.add_initializeRequest(InitializeRequest);
prm.add_beginRequest(BeginRequest);
prm.add_pageLoading(PageLoading);
prm.add_pageLoaded(PageLoaded);
prm.add_endRequest(EndRequest);
}
$get('ClientEvents').innerHTML += "APP:: Application init. <br/>";
}
function ApplicationLoad(sender, args) {
$get('ClientEvents').innerHTML += "APP:: Application load. ";
$get('ClientEvents').innerHTML += "(isPartialLoad = " + args.get_isPartialLoad() + ")<br/>";
}
function ApplicationUnload(sender) {
alert('APP:: Application unload.');
}
function ApplicationDisposing(sender) {
$get('ClientEvents').innerHTML += "APP:: Application disposing. <br/>";
}
// Application event handlers for page developers.
function pageLoad() {
$get('ClientEvents').innerHTML += "PAGE:: Load.<br/>";
}
function pageUnload() {
alert('Page:: Page unload.');
}
// PageRequestManager event handlers.
function InitializeRequest(sender, args) {
$get('ClientEvents').innerHTML += "<hr/>";
$get('ClientEvents').innerHTML += "PRM:: Initializing async request.<br/>";
}
function BeginRequest(sender, args) {
$get('ClientEvents').innerHTML += "PRM:: Begin processing async request.<br/>";
}
function PageLoading(sender, args) {
$get('ClientEvents').innerHTML += "PRM:: Loading results of async request.<br/>";
var updatedPanels = printArray("PanelsUpdating", args.get_panelsUpdating());
var deletedPanels = printArray("PanelsDeleting", args.get_panelsDeleting());
var message = "-->" + updatedPanels + "<br/>-->" + deletedPanels + "<br/>";
document.getElementById("ClientEvents").innerHTML += message;
}
function PageLoaded(sender, args) {
$get('ClientEvents').innerHTML += "PRM:: Finished loading results of async request.<br/>";
var updatedPanels = printArray("PanelsUpdated", args.get_panelsUpdated());
var createdPanels = printArray("PaneslCreated", args.get_panelsCreated());
var message = "-->" + updatedPanels + "<br/>-->" + createdPanels + "<br/>";
document.getElementById("ClientEvents").innerHTML += message;
}
function EndRequest(sender, args) {
$get('ClientEvents').innerHTML += "PRM:: End of async request.<br/>";
}
// Helper functions.
function Clear()
{
$get('ClientEvents').innerHTML = "";
}
function printArray(name, arr)
{
var panels = name + '=' + arr.length;
if(arr.length > 0)
{
panels += "(";
for(var i = 0; i < arr.length; i++)
{
panels += arr[i].id + ',';
}
panels = panels.substring(0, panels.length - 1);
panels += ")";
}
return panels;
}
</script>
</form>
</body>
</html>
posted @
2008-03-10 08:28 网碾平 阅读(48) |
评论 (0) |
编辑

2008年3月7日
Windows Mobile如何观看Webcast
1.下载Windows Media 编码器 9 系列
2.启动Windows Media编码器,在“新建会话”的对话框,选择“转换文件”
3.选择WebCast文件(源文件),输出文件(需要在在mobile上播放的文件)
4.下一步对话框中选择Pocket PC
然后下一步,下一步便可以了.
posted @
2008-03-07 17:57 网碾平 阅读(35) |
评论 (0) |
编辑