代码描述人生
.NET 相关技术 (大坏蛋的blog)
博客园
首页
新随笔
联系
订阅
管理
28 Posts :: 4 Stories :: 63 Comments :: 2 Trackbacks
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
(10)
给我留言
查看留言
随笔分类
.NET Developer training(2)
C#(6)
EnterpriseService(6)
Remoting技术专区域(2)
WEB Service及相关
数据库技术
随笔档案
2006年12月 (1)
2005年11月 (1)
2005年3月 (1)
2004年10月 (1)
2004年9月 (2)
2004年8月 (3)
2004年7月 (4)
2004年6月 (1)
2004年5月 (6)
2004年4月 (8)
文章分类
.NET教程(2)
相册
附加相册
文章资源区
我和家人
我爱去的博客站点
孙展波
我的好友
Leevi
Surain
最新评论
1. re: 如何扮演另一个帐号(C#实现)
为什么我登陆的时候如果是本机就可以正常.但是远程的机子就登陆不了?
--阿呆乐
阅读排行榜
1. .NET Remoting的新特性-IpcChannel(.NET Framework 2.0) (3395)
2. 关于MyIE2中博客园页面自动跳转的问题回答(2672)
3. 如何扮演另一个帐号(C#实现)(2649)
4. 拜山贴(COM+中的连接复用)(2564)
5. COM的DTC超时设置无效,不服你试试(2321)
评论排行榜
1. 我建了一个.NET技术的QQ群,为了方便大家即时交流,群号:2603759(12)
2. 关于MyIE2中博客园页面自动跳转的问题回答(8)
3. 机器克隆会导致DTC进程堵死(8)
4. 公司想招几个编程人员,主要在 .NET 下做开发(7)
5. COM的DTC超时设置无效,不服你试试(7)
2004年9月10日
#
Friend Assemblies(.NET FrameWork 2.0新特性)
一个Assembly中所有的非公共类型,可以被它的【好友】Assembly访问。即如果AssemblyA中声明AssemblyB是它的好友Assembly,则AssemblyB可以像访问自身Assembly一样访问AssemblyA的私有类型。
将另一个Assembly声明成自己的Friend Assembly,需要使用一个InternalsVisibleToAttribute的特性。
[assembly:InternalsVisibleTo ("AssemblyB", PublicKeyToken="32ab4ba45e0a69a1")]
不过,声明Friend Assembly,代表允许AssemblyB访问自己的私有类型,但B不做逆向声明,A是不能访问B的私有类型的。跟现实生活一样。有的人你把他当朋友,什么秘密都告诉他,可人家没把你当朋友(开个玩笑,我身边没有)。
posted @
2004-09-10 13:08
大坏蛋 阅读(1090) |
评论 (0)
|
编辑
.NET Remoting的新特性-IpcChannel(.NET Framework 2.0)
.NET FrameWoek2.0中,新添加一个IpcChannel,它是利用Windows的Ipc(进程间通讯)实现的一个Remoting的Channel,它的速度比Http或Tcp的Channel快很多,但它只能被用在本机不同应用程序域之间的通讯,所以,如果我们的客户端有可能与服务器端在同一个机器上运行时,可以通过注册IcpChannel来提高性能。
下面是一个简单的IpcChannel的示例:
Using directives
#region
Using directives
using
System;
using
System.Collections.Generic;
using
System.Text;
using
System.Runtime.Remoting;
using
System.Runtime.Remoting.Channels;
using
System.Runtime.Remoting.Channels.Ipc;
#endregion
namespace
TestIpcChannel
{
class
Program
{
static
void
Main(
string
[] args)
{
IpcChannel myChannel
=
new
IpcChannel(
"
test
"
);
ChannelServices.RegisterChannel(myChannel);
RemotingConfiguration.RegisterWellKnownServiceType(
typeof
(RemObject),
"
RemObject.rem
"
, WellKnownObjectMode.SingleCall);
//
服务注册结束,下面是客户端代码
RemObject obj
=
(RemObject)(Activator.GetObject(
typeof
(RemObject),
"
Ipc://Test/RemObject.rem
"
));
obj.TestMethod();
Console.ReadLine();
}
}
public
class
RemObject : MarshalByRefObject
{
public
void
TestMethod()
{
Console.WriteLine(
"
Hello IcpChannel!
"
);
}
}
}
为了便于大家读代码,该程序同时扮演服务器和客户端的角色,可以直接编译执行。
posted @
2004-09-10 11:00
大坏蛋 阅读(3395) |
评论 (4)
|
编辑
Powered by:
博客园
Copyright © 大坏蛋