请理解,我是微软商店开发的新手......
我正在使用 silverlight / c# 来设计一个可移植的基于 Web 的 UI(我称之为“WebUI”),它必须能够远程连接到同一类的多个实例(我们称之为“RemoteClass”),获取“状态”每个实例并有选择地调用实例方法。
这个想法是用户将手动实例化所有 RemoteClass 实例,如果他需要前往另一个位置,将使用 WebUI 与它们进行交互。
我对 WebUI 的编码方式没有限制,但是,当涉及到 RemoteClass 时,我正在一个受限制的框架内工作。RemoteClass 仅是 .NET3.5 c#。
相关限制如下:
- “RemoteClass”实例,看不到任何外部类实例。
- 因此,我想引用的任何内容都必须在 RemoteClass 中声明。
- 我要实例化的任何其他类都必须实例化为 RemoteClass 实例中的嵌套类
现在 - 可能有任意数量的 RemoteClass 实例,每个实例都有自己唯一的 ID。在这种情况下,我无法在外部托管一组实例 ID,并且在 WebUI 应用程序启动之前无法预测这些 ID。
因为 - 在我看来 - 我需要每个 RemoteClass 服务实例的唯一 URI,以便能够远程调用一个特定实例的方法,但是 WebUI 中的客户端将需要按顺序知道每个 URI要连接到它,我能看到的唯一明显的解决方案是执行以下操作:
- 编写一个单独的“中间”应用程序(比如“InterApp”),它可以保存一个动态的 ID 数组并实例化 2 个 ServiceHost 实例——比如 ServiceHost1 和 ServiceHost2
- 要求在创建任何 RemoteClass 实例之前运行“InterApp”。
- 在创建每个新的 RemoteClass 实例时连接到 ServiceHost1,并将 ID 传递给 InterApp 中的数组进行存储。
- 同样,在每个 RemoteClass 实例化时实例化一个嵌套的 ServiceHost 实例,具有唯一的 URI,基于它的唯一 ID(InterApp 知道),然后我可以通过调用“GetIDList()”服务来使用 WebUI 连接到InterApp 的 ServiceHost2
我希望以上内容是有道理的——我确信必须有一种不那么复杂、更可靠的方法来实现这一目标,尽管我仍然很年轻并且不知道可能的选择......
我打算使用基于 ServiceHost 的服务器和基于 ChannelFactory 的客户端...
欢迎任何建议/建设性批评。
Ĵ