我正在使用.Net Remoting与服务器激活对象通信。现在是时候迁移到另一种通信技术了,因为远程处理已经过时了。下面是我的类中的一个例子来解释我的问题:
public class Class1 : MarshalByRefObject
{
public Class1()
{
MyProp = new Class2();
}
public Class2 MyProp { get; set; }
}
public class Class2 : MarshalByRefObject
{
public string GetText()
{
return File.ReadAllText(@"c:\file.txt", Encoding.UTF8);
}
}
字符串
在服务器上,我创建了一个通道并封送了这个类:
var c1 = new Class1();
RemotingServices.Marshal(c1, "myUri.rem", typeof(Class1));
型
从客户端创建到服务器的连接后,我可以这样做:
var proxy = (Class1)RemotingServices.Connect(typeof(Class1), "myUri.rem");
var result = proxy.MyProp.GetText();
型
使用.Net Remoting,我可以访问远程对象上的属性MyProp并调用函数GetText。GetText的结果被序列化回客户端。
问题是我如何使用WCF、gRPC或其他工具访问MyProp属性作为TransparentProxy(远程对象)?
我使用WCF的测试是将Class2序列化回客户端,但这不是我想要的。
1条答案
按热度按时间zphenhs41#
我不太明白您的意思,但我看到了一个基于回调操作的WCF远程调用的示例。
它基于Nettcpbinding。回调方法写在客户端上,这样服务器就可以既是服务器又是客户端。
服务器:
ICalculator.cs
字符串
ICallback.cs
型
Calculator.cs
型
服务器启动:
型
客户
CallbackWCFService.cs
型
客户端启动:
型
如果不符合您的期望,请提供更多信息。我会继续帮你解决这个问题。