.net core 如何将我的远程通道代码从net framework迁移到netcore?

.net core 如何将我的远程通道代码从net framework迁移到netcore?,.net-core,.net-framework-version,.net Core,.net Framework Version,我正在尝试将应用程序从.net Framework迁移到.net Core 3.1。 我遇到了System.Runtime.Remoting.Channels库不可用于.Net core的问题 有没有办法通过调用另一个方法来重写这些方法 目前有哪些替代方案可以从.net core执行相同的过程 以下是它在net framework中的使用方式: 使用系统; 使用系统集合; 使用System.Linq; 使用System.Net.Sockets; 使用System.Runtime.Remoting

我正在尝试将应用程序从.net Framework迁移到.net Core 3.1。 我遇到了System.Runtime.Remoting.Channels库不可用于.Net core的问题

有没有办法通过调用另一个方法来重写这些方法

目前有哪些替代方案可以从.net core执行相同的过程

以下是它在net framework中的使用方式:

使用系统;
使用系统集合;
使用System.Linq;
使用System.Net.Sockets;
使用System.Runtime.Remoting.Channels;
使用System.Runtime.Remoting.Channels.Tcp;
使用系统线程;
使用Myapp.Infrastructure.Settings;
命名空间Myapp.Infrastructure.Messaging
{
公共静态类MessagingClient
{
专用静态TCP信道_信道;
私有静态MessagingServerObject\u serverObject;
私有静态MessagingClientObject_clientObject;
私有静态只读计时器=新计时器(OnTimerTick,null,Timeout.Infinite,1000);
私有静态IMessageListener\u messageListener;
公共静态布尔已连接{get;set;}
私有静态void OnTimerTick(对象状态)
{
if(_clientObject!=null&&u messageListener!=null&&IsConnected)
{
字符串[]数据;
_clientObject.GetData(输出数据);
foreach(arrData.Distinct()中的var t)
{
_messageListener.ProcessMessage(t);
}
}
}
公共静态无效停止()
{
如果(!断开连接)返回;
Timer.Dispose();
断开连接();
}
公共静态无效断开连接()
{
断开连接=错误;
_messageListener=null;
尝试
{
尝试
{
如果(_serverObject!=null)
_分离(_clientObject);
}
捕获(例外)
{
_serverObject=null;
}
}
最后
{
如果(_通道!=null)
{
ChannelServices.UnregisterChannel(_channel);
_通道=空;
}
}
}
公共静态无效发送消息(字符串消息)
{
如果(_serverObject!=null)
{
尝试
{
_SetValue(string.Format(“{0}”,message));
}
捕获(例外)
{
如果(断开连接)断开();
}
}
}
公共静态布尔扫描()
{
尝试
{
如果(_serverObject!=null)
{
_Ping();
返回true;
}
返回false;
}
捕获(例外)
{
如果(断开连接)断开();
返回false;
}
}
公共静态无效重新连接(IMessageListener messageListener)
{
尝试
{
断开连接();
}
捕获(SocketException)
{
}
_messageListener=messageListener;
连接(_messageListener);
}
公共静态void Connect(IMessageListener messageListener)
{
Timer.Change(0,Timeout.Infinite);
if(messageListener==null)返回;
if(string.IsNullOrWhiteSpace(LocalSettings.MessagingServerName))返回;
_messageListener=messageListener;
var serverProv=新的BinaryServerFormatterSinkProvider
{
TypeFilterLevel=System.Runtime.Serialization.Formatters.TypeFilterLevel.Full
};
var clientProv=new BinaryClientFormatterSinkProvider();
IDictionary props=新哈希表();
道具[“端口”]=0;
_频道=新的TCP频道(props、clientProv、serverProv);
ChannelServices.RegisterChannel(_channel,false);
var url=String.Format(“tcp://{0}:{1}/ChatServer”,LocalSettings.MessagingServerName,LocalSettings.MessagingServerPort);
尝试
{
_serverObject=(MessagingServerObject)Activator.GetObject(typeof(MessagingServerObject),url);
_clientObject=新消息clientObject();
_附加(_clientObject);
}
抓住
{
HandleError();
返回;
}
断开连接=正确;
定时器。改变(0,1000);
}
私有静态无效句柄错误()
{
_messageListener=null;
_serverObject=null;
_clientObject=null;
如果(_通道!=null)
{
ChannelServices.UnregisterChannel(_channel);
_通道=空;
}
断开连接=错误;
}
}
}

MS文档在“远程处理”下指出了一些可能的替换:谢谢@Evantimboli您知道有什么教程可以帮助我迁移吗?任何帮助都会有帮助