建立c#类库项目dll
实现代码:
using system;
namespace dll
{
/// <summary>
/// test 的摘要说明。
/// </summary>
[system.serializable]
public class test
{
public test()
{
//
// todo: 在此处添加构造函数逻辑
//
}
public string time
{
get
{
return datetime.now.tostring();
}
}
}
}
using system;
using system.io;
namespace dll
{
/// <summary>
/// api 的摘要说明。
/// </summary>
public class api : system.marshalbyrefobject
{
public api()
{
//
// todo: 在此处添加构造函数逻辑
//
}
public string gettime()
{
return new test().time;
}
public string[] getdirectories(string path)
{
return directory.getdirectories(path);
}
public string[] getfiles(string path)
{
return directory.getfiles(path);
}
}
}
添加c#windows应用程序项目server
实现代码:
using system;
using system.drawing;
using system.collections;
using system.componentmodel;
using system.windows.forms;
using system.data;
using system.runtime.remoting;
using system.runtime.remoting.channels;
using system.runtime.remoting.channels.tcp;
using dll;
namespace server
{
/// <summary>
/// form1 的摘要说明。
/// </summary>
public class form1 : system.windows.forms.form
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private system.componentmodel.container components = null;
public form1()
{
//
// windows 窗体设计器支持所必需的
//
initializecomponent();
//
// todo: 在 initializecomponent 调用后添加任何构造函数代码
//
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.dispose();
}
}
base.dispose( disposing );
}
#region windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void initializecomponent()
{
//
// form1
//
this.autoscalebasesize = new system.drawing.size(6, 14);
this.clientsize = new system.drawing.size(208, 150);
this.name = "form1";
this.text = "form1";
this.load += new system.eventhandler(this.form1_load);
}
#endregion
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[stathread]
static void main()
{
application.run(new form1());
}
private void form1_load(object sender, system.eventargs e)
{
tcpchannel chan = new tcpchannel(7777);
channelservices.registerchannel(chan);
remotingconfiguration.registerwellknownservicetype(
type.gettype("dll.api, dll"),
"test",
wellknownobjectmode.singlecall);
}
}
}
添加c#windows应用程序项目client
global.cs代码:
using system;
using system.runtime.remoting;
using system.runtime.remoting.channels;
using system.runtime.remoting.channels.tcp;
using dll;
namespace client
{
/// <summary>
/// global 的摘要说明。
/// </summary>
public class global
{
public global()
{
//
// todo: 在此处添加构造函数逻辑
//
}
public static dll.api api
{
get
{
return (dll.api)activator.getobject(typeof(dll.api), "tcp://"+ config.host + ":" + config.port + "/test");
}
}
}
}
主窗体关键代码:
[stathread]
static void main()
{
application.run(new form1());
channelservices.registerchannel(new tcpchannel());
}
private void form1_load(object sender, system.eventargs e)
{
string[] files = global.api.getfiles(@"c:/");//取得服务器c盘文件
}
参考文献:http://support.microsoft.com/default.aspx?scid=kb;zh-cn;307546
商业源码热门下载www.html.org.cn
新闻热点
疑难解答
图片精选