繁体   English   中英

.Net中的项目间(类库)通信

[英]Inter project (class library) communication in .Net

假设我有一个使用 Visual Studio MVC 模板创建的简单 web 应用程序项目,以及在 web 项目中引用的 class 库项目。

现在,当 web 应用程序调用 class 库中的方法时,它在后台使用哪种协议进行此类通信? 是 TCP/IP 还是命名为 Pipe? 它使用哪个端口?

协议通常用于进程间通信。

.NET 中的引用库用于进程内操作。 您的库A已编译并具有公共 API 及其签名(公共方法/属性)。 您的 MVC 项目 output(也是一个库)针对库A进行编译,它解析了 MVC 库中调用的所有方法的签名。 在运行时,这两个库都加载到AppDomain中并存在于单个进程中,所有签名都被解析。 这称为“早期绑定”

此外,您可以使用后期装订

string s = "param";
dynamic x = new SomeClass();
x.SomeMethod(s); 

在上面的示例中, SomeMethod在编译期间未解析。 它将在运行时被搜索和解决。

后期或早期绑定都是同一过程的一部分,不需要任何协议。 但是,如果您有多个进程并且需要在它们之间进行通信 - 那么您可以使用数据库、文件、协议、Memory 映射文件等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM