用第二个库组件替换一个库组件,以便完全删除第一个库组件

时间:2013-04-24 06:45:50

标签: c# .net dll

我在.NET中有一个Windows应用程序,它使用两个库(命名为LB1和LB2)。这两个库都是第三方库。 现在我的客户希望我用LB2组件替换LB1组件,以便完全删除LB1组件。 (可能是为了削减成本)

我需要检查是否可以使用LB2实现LB1实现的控件/方法/其他功能。

我该怎么做?

  1. 手动(我试过,但我花了很长时间才发现了一些 控制)
  2. 通过任何工具。
  3. 另外,无论如何我可以弄清楚LB1.Component1可以用LB2.Component2替换,那我怎样才能改变整个代码呢?

    1. 手动(需要很长时间才能单独更换每个控件)
    2. 通过任何工具或脚本
    3. 希望我的问题很清楚,如果没有,那么请发表评论,我会尝试详细说明。

      编辑:客户已经确认,对于LB1中的每个控件,LB2中都有一个镜像副本,但不知道确切的映射(名称)。这是我必须确定的。如果我必须手动完成,那么我需要处理的是什么?

      编辑2 :我使用了反射,并且知道我的两个assesblies都有一个类(名为NCombo和Combo),它看起来与名字相似。两者都有很长的描述。我能知道这些课程是一样的吗? 我的意思是,如果NCombo的对象有一些功能,那么我可以用Combo的对象实现相同的功能。已经在几个地方使用了对象,因此通过运行应用程序检查每个功能将非常困难。 有什么方法可以知道吗?

2 个答案:

答案 0 :(得分:1)

是的,你的问题很清楚.................

您只需手动完成所有操作。

例: LB1有一些cotrols但LB2 deos't具有相同的cotrols或事件。您需要检查它并检索正确的控制和事件。

据我所知,没有任何工具可以这样做。如果它可用也不会做100%。

答案 1 :(得分:0)

您必须比较两者并确保LB2提供与LB1相同的功能。这是一个前面的分析步骤,是的,它需要时间,但它也将帮助您了解您正在做什么以及是否可能。基于此,您可以决定后续步骤。

如果它们提供相同的功能,下一步可能是替换控件,可能会重写代码并花费足够的时间来确保一切按预期工作。这称为重构。当然,这是一个手动工作 - 尽管你可以编写自动化测试。

如果他们不提供相同的功能,您必须决定下一步将是什么。