我有 asp.net 组件的旧版本。我想在旧版本旁边使用更新的版本。
我使用gacutil.exe
命令将两个程序集放在GAC中。现在,我想在每个.aspx
页面中加载特定版本的组件。
我该怎么做?
我可以使用此代码吗?
<%@ Register assembly="<dllname>, Version=2.5.0.0, Culture=neutral,
PublicKeyToken=......." Namespace="<dllNamespace>." TagPrefix="WG" %>
答案 0 :(得分:0)
您可以使用以下代码
在运行时创建所需的版本对象 Object obj = Activator.CreateInstance("dllName","dllNameSpace.ClassName");
您可以参考Activator.CreateInstance或Use Activator.CreateInstance to Create Objects from a String Name
答案 1 :(得分:0)
技术上是的,您可能会询问Register
属性。然而,走路并不是一条非常简单的道路,因为它会受到奇怪的限制。
我的建议是,如果可能的话,要么根本不这样做,要么在用户控件中隔离不同版本的控件,这些控件可以存在于单独的类库中。您将获得如下组件名称:controls_for_1_5
和controls_for_2_5
,并在此处创建对程序集的引用。 (名称当然可供您选择)。这种方式仍然会导致奇怪的错误,如Can't cast 'Namespace.ClassA' to 'Namespace.ClassA'
(是的,它们是相同的,不是拼写错误),如果你不小心的话。
除非你真正了解.NET框架的更深层次,否则我的建议仍然是不要这样做。