是否可以在没有序列化的情况下在C#应用程序之间共享对象?
我需要三个应用程序来共享同一个对象的实例,但该对象本身不支持序列化。
范围是:我正在开发一些应用程序来创建SVN和TFS存储库之间的某种互操作性。但我不想连接到三个应用程序上的tfs服务器(无用的时间),因为其中一个只是一组小实用程序,我不希望它有一个缓慢的加载。
所以我考虑使用RemotingServices.Marshal,在tcp通道中临时注册连接对象,并在其他应用程序中随时调用该对象。
但是这就是事情。 TeamFoundation.Client中的许多对象都不可序列化,因此在尝试检索对象时出现错误。
我该如何解决这个问题?
答案 0 :(得分:2)
direct 替代序列化是远程处理,但也需要更改类型,因此无法正常工作。
我不会尝试序列化TFS对象,而是编写一个类似于 TFS对象的对象模型(或者更好:您想要执行的请求等),并发送 。然后根据需要重建。基本上是实际对象顶部的浅层DTO层。
显然你需要根据需要重建TFS模型(基于DTO状态),但这就是生命。