Как использовать две версии одной и той же сборки в приложении ASP.NET? - PullRequest
3 голосов
/ 27 мая 2011

У меня есть старая версия компонента asp.net .Я хотел бы использовать более новую версию наряду со старой версией.

Я поместил обе сборки в GAC с помощью команды gacutil.exe.Теперь я хотел бы загрузить определенную версию компонента внутри каждой .aspx страницы.

Как мне это сделать?

Можно ли использовать этот код?

<%@ Register assembly="<dllname>, Version=2.5.0.0, Culture=neutral,
    PublicKeyToken=......." Namespace="<dllNamespace>." TagPrefix="WG" %>

Ответы [ 2 ]

0 голосов
/ 28 мая 2011

Технически, да, это возможно с помощью свойства Register, о котором вы спрашиваете. Однако это не очень легкий путь, так как он будет пронизан странными ограничениями.

Мое предложение состояло бы в том, чтобы либо вообще не делать этого, если это возможно, либо изолировать элементы управления различных версий в пользовательских элементах управления, которые могут находиться в отдельных библиотеках классов. Вы получите имена сборок, такие как: controls_for_1_5 и controls_for_2_5, и здесь вы создадите ссылки на сборку. (Имена, конечно, для вас, чтобы выбрать). Этот способ все еще может вызвать странные ошибки, такие как Can't cast 'Namespace.ClassA' to 'Namespace.ClassA' (Да, они одинаковые, это не опечатка), если вы неосторожны.

Тем не менее, я бы посоветовал не делать этого, если вы не очень хорошо понимаете более глубокие части .NET Framework.

0 голосов
/ 28 мая 2011

Вы можете использовать для создания объекта нужной версии во время выполнения, используя следующий код

  Object obj = Activator.CreateInstance("dllName","dllNameSpace.ClassName");

, который вы можете сослаться на Activator.CreateInstance или .Создание объектов из строкового имени

...