小毛头的BLOG

有2个人从铁窗朝外忘去,一个人看到满地的泥泞,另一个人只看到满天的繁星...

.NET 技术FAQ(十)-----杂项

10. 杂项
10.1 .NET 的远程计算如何工作?
.NET 的远程计算涉及通过通道发送消息。两种标准的通道是 HTTP 和 TCP。仅仅在局域网上才倾向于使用 TCP—HTTP 能在局域网和广域网 (internet) 上使用。
现在提供了对多种消息串行化格式的支持,例如 SOAP (基于 XML) 和二进制格式。默认情况下,HTTP 通道使用 SOAP (通过 .NET 运行库的 Serialization SOAP Formatter),而 TCP 通道使用二进制格式 (通过 .NET 运行库的 Serialization Binary Formatter)。但每个通道可以使用任一串行化格式。
这里是远程访问的一些方式:
SingleCall。每个来自客户端的请求由一个新对象服务。当请求完成后对象被丢弃。可以在 ASP+ 环境中使用 ASP+ 国家服务来保存应用程序或会话的国家,从而使这种模型 (无国家之分的) 变成有国家支持的。
 
Singleton。所有来在客户端的请求由单一的服务器对象处理。
 
Client-activated object。这是老的有国家支持的 (D)COM 模型,这里客户端受到一个远端对象的引用并保留此引用 (以保持远端对象的生存),直到对它的访问完成。
对象的分布式垃圾收集由称为“基于租用的生命周期”管理。每个对象拥有一个租用时间,这个时间到达时,从 .NET 运行库的远程子结构断开对象。对象有默认的更新时间—从客户端发起的成功调用会更新租用时间。客户端也可以显示地更新租用时间。
 
 
10.2 如何在 .NET 程序中获得 Win32 API?
使用 P/Invoke。它使用了和 COM 互操作性相似的技术,但被用来访问静态 DLL 入口点而不是 COM 对象。以下是一个调用 Win32 MessageBox 函数的 C# 程序示例:
using System;
using System.Runtime.InteropServices;

class MainApp
{
 [dllimport("user32.dll", EntryPoint="MessageBox", SetLastError=true, CharSet=CharSet.Auto)]
 public static extern int MessageBox(int hWnd, String strMessage, String strCaption, uint uiType);

 public static void Main()
 {
  MessageBox( 0, "Hello, this is PInvoke in operation!", ".NET", 0 );
 }
}

阅读更多
个人分类:
想对作者说点什么? 我来说一句

.NET 技术FAQ

zgqtxwd zgqtxwd

2008-05-01 03:20:00

阅读数:69

WPS二次开发FAQ&帮助文档

2014年07月03日 2.68MB 下载

Microsoft .NET Framework FAQ

2006年02月23日 113KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭