gpt4 book ai didi

c# - 引用可能存在于两个程序集之一中的类

转载 作者:太空宇宙 更新时间:2023-11-03 16:53:11 28 4
gpt4 key购买 nike

我目前正在为一个项目开发数据收集器。它的工作方式基本上是调用另一个收集数据的程序,然后该程序返回一个包含队列信息集合的数据结构。然后收割机序列化数据。实际收集数据的程序由另一个团队维护,最近他们做了升级并决定重构他们的代码。我调用的方法仍在同一位置,但是,我返回的数据结构已移至不同的程序集(其代码保持不变)。有趣的是,我们现在在现场拥有该产品的两个版本,因此根据客户拥有的版本,我需要的数据结构可能在两个不同的程序集之一中。如果可能的话,我的老板想尝试只使用一个版本的收割机程序。

所以,我的问题是:使用 C# 和 .NET 3.5,有没有办法在运行时选择要使用的程序集?我想我可以使用反射,但我想知道是否有任何方法可以在编译时正常编写代码,然后在运行时根据其他程序的版本解决依赖关系。

最佳答案

您可以尝试使用适配器(包装器)设计模式。

interface IQueueInfoProvider
{
DataStructure FetchData();
}

class Version1QueueInfoProvider : IQueInfoProvider
{
DataStructure FetchData()
{
//Fetch using Version1 Assemblies.
}
}

class Version2QueueInfoProvider : IQueInfoProvider
{
DataStructure FetchData()
{
//Fetch using Version2 Assemblies.
}
}

我相信 .NET 不会尝试加载不需要的引用程序集,但如果我错了,您始终可以使用反射。

关于c# - 引用可能存在于两个程序集之一中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3196729/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com