白开心
IT博客
::
首页
:: ::
联系
::
聚合
::
管理
::
9 随笔 :: 76 文章 :: 28 评论 :: 0 Trackbacks
<
2024年12月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
公告
独坐在路边街角,冷风吹醒,默默地伴着我的孤影。
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(12)
给我留言
查看公开留言
查看私人留言
文章分类
.Net(学习ing...)(39)
(rss)
Asp+vbScript(14)
(rss)
JavaScript(14)
(rss)
T-SQL(8)
(rss)
经典收藏(8)
(rss)
设计模式
(rss)
文章档案
2013年4月 (1)
2013年3月 (1)
2012年7月 (1)
2012年4月 (1)
2011年10月 (1)
2011年8月 (1)
2011年3月 (1)
2011年2月 (1)
2011年1月 (1)
2010年9月 (1)
2010年6月 (1)
2010年4月 (2)
2010年1月 (1)
2009年11月 (1)
2009年10月 (6)
2009年9月 (3)
2009年8月 (2)
2009年5月 (1)
2008年10月 (2)
2008年9月 (2)
2008年7月 (2)
2008年6月 (1)
2008年3月 (1)
2008年2月 (1)
2008年1月 (1)
2007年12月 (5)
2007年11月 (4)
2007年10月 (2)
2007年9月 (2)
2007年7月 (1)
2007年6月 (2)
2007年4月 (2)
2007年1月 (1)
2006年12月 (1)
2006年11月 (2)
2006年8月 (1)
2006年7月 (1)
2006年5月 (2)
2006年4月 (1)
2006年2月 (1)
2006年1月 (1)
2005年12月 (10)
相册
PhotoShop Study For HuangHuaXiang
我的相册
收藏夹
.NET(1)
(rss)
其他类别
(rss)
搜索
最新评论
1. re: JQUERY的表单异步提交[未登录]
1111111
--111
2. re: JQUERY的表单异步提交
eqedqedasd
--123
3. re: 委托和匿名函数
评论内容较长,点击标题查看
--bracelet shopping
4. re: 递归查询
您好!你的在我这里怎么执行不了啊!
--小陈
5. re: JS操作Xml的相关方法[未登录]
不能保丰到服务器上?
--11
阅读排行榜
1. 窦房折返性心动过速(928)
2. ∷∷∷∷男人感悟一百条∷∷∷∷(710)
3. 人生致命的八个经典问题(657)
4. 秋天不回来(570)
5. 圣诞(467)
评论排行榜
1. 圣诞(0)
2. 人生致命的八个经典问题(0)
3. ∷∷∷∷男人感悟一百条∷∷∷∷(0)
4. 窦房折返性心动过速(0)
5. 秋天不回来(0)
关于Remoting
使用反射调用指定的服务器端程序集
Server端:
1
using
System;
2
using
System.Collections.Generic;
3
using
System.Text;
4
using
System.Runtime.Remoting.Channels.Tcp;
5
using
System.Runtime.Remoting.Channels;
6
using
System.Runtime.Remoting;
7
8
namespace
Server
9
{
10
class
Program
11
{
12
private
static
TcpServerChannel channel
=
null
;
13
private
static
int
Port
=
8080
;
14
15
static
void
Main(
string
[] args)
16
{
17
channel
=
new
TcpServerChannel(
"
NcZerg
"
, Port);
18
ChannelServices.RegisterChannel(channel,
false
);
19
System.Type ServerObj
=
typeof
(ServerObjects.ServerObjFactory);
20
/**/
///
System.Type ServerObj = typeof(ServerObjects.ServerObject);
21
System.Runtime.Remoting.WellKnownServiceTypeEntry Services
=
new
WellKnownServiceTypeEntry(ServerObj,
"
Services
"
, WellKnownObjectMode.SingleCall);
22
RemotingConfiguration.RegisterWellKnownServiceType(Services);
23
Console.WriteLine(
"
服务已经启动
"
);
24
Console.ReadLine();
25
}
26
}
27
}
Client端:
using
System;
using
System.Collections.Generic;
using
System.Text;
using
System.Configuration;
using
IServerObj;
namespace
Client
{
class
RemotingServices
{
private
static
IServerObjFactory _ServerFactory
=
null
;
private
static
IServerObjFactory ServerFactory
{
get
{
if
(_ServerFactory
==
null
)
{
_ServerFactory
=
(IServerObjFactory)Activator.GetObject(
typeof
(IServerObjFactory),
"
tcp://127.0.0.1:8080/Services
"
);
}
return
_ServerFactory;
}
}
private
static
IServerObject _ServerObject
=
null
;
public
static
IServerObject ServerObject
{
get
{
if
(_ServerObject
==
null
)
{
/**/
///
利用反射和工厂方法类构造自己所需的实例类
_ServerObject
=
(IServerObject)ServerFactory.GetInstance(
"
ServerObjects.ServerObject
"
);
}
return
_ServerObject;
}
}
}
}
应用程序类:
IServerObj工程
1
using
System;
2
using
System.Collections.Generic;
3
using
System.Text;
4
5
namespace
IServerObj
6
{
7
public
interface
IServerObject
8
{
9
int
GetSum(
int
a,
int
b);
10
void
SayHello(String name);
11
}
12
13
public
interface
IServerObjFactory
14
{
15
IServerObject CreateInstance();
16
object
GetInstance(String ClassName);
17
}
18
}
19
ServerObjects工程:
1
using
System;
2
using
System.Collections.Generic;
3
using
System.Text;
4
using
IServerObj;
5
using
System.Reflection;
6
7
namespace
ServerObjects
8
{
9
[Serializable]
10
public
class
ServerObject : MarshalByRefObject, IServerObject
11
{
12
13
public
int
GetSum(
int
a,
int
b)
14
{
15
return
a
+
b;
16
}
17
18
public
void
SayHello(String name)
19
{
20
;
21
}
22
}
23
24
/**/
///
<summary>
25
///
工厂方法,构件对象
26
///
</summary>
27
[Serializable]
28
public
class
ServerObjFactory : MarshalByRefObject, IServerObjFactory
29
{
30
public
IServerObject CreateInstance()
31
{
32
return
new
ServerObject();
33
}
34
35
/**/
///
<summary>
36
///
利用反射和工厂方法类构造自己所需的实例类
37
///
</summary>
38
///
<param name="ClassName"></param>
39
///
<returns></returns>
40
public
object
GetInstance(String ClassName)
41
{
42
Assembly assembly
=
Assembly.GetExecutingAssembly();
43
Type typForm
=
assembly.GetType(ClassName);
44
Object obj
=
typForm.InvokeMember(
45
null
,
46
BindingFlags.DeclaredOnly
|
47
BindingFlags.Public
|
BindingFlags.NonPublic
|
48
BindingFlags.Instance
|
BindingFlags.CreateInstance,
49
null
,
50
null
,
51
null
);
52
53
return
obj;
54
}
55
}
56
}
57
posted on 2008-03-05 01:30
白开心
阅读(319)
评论(0)
编辑
收藏
引用
所属分类:
.Net(学习ing...)
只有注册用户
登录
后才能发表评论。
Powered by:
IT博客
Copyright © 白开心