хорошо я работаю для PocketPC и имеет библиотеку (System.data
) и (System.data.sqlclient
), то они не являются полными библиотеки, то мне нужно использовать System.data
(полная библиотека), но теперь у меня есть 2 вызова DLL (System.data
) и в полной библиотеке также есть System.data.sqlclient
, тогда у меня проблема с ними, поэтому , если я использую только полную библиотеку, у меня есть другая проблема, потому что System.data
(нет полной библиотеки) имеет одну вещь, которую System.data
(полная библиотека) не имеет, поэтому мне нужно использовать 2 dll (с тем же пространством имен), и у меня проблемы ...Можно ли изменить пространство имен dll?
-3
A
ответ
3
См. extern alias в MSDN и a tutorial, чтобы использовать их в визуальной студии.
из командной строки компилятора ссылки объявлены как:
/r:SystDataOfficial=System.Data.dll
/r:SystDataOther=data.dll
Затем в коде:
extern alias SystDataOfficial;
extern alias SystDataOther;
var c = new SystDataOfficial::System.Data.SqlClient();
Вы также можете поместить только один из библиотек DLL в качестве псевдонима и использовать другие один нормально
Обратите внимание, что типы не будут использоваться вместе. Этот код не будет работать:
// Expect SystDataOfficial::SomeConstant
SystDataOfficial::System.Data.SqlClient.SomeMethod(SystDataOther::SomeConstant);
0
Да, см
extern alias (C# Reference) на MSDN
Но они по-прежнему будут разные типы, и вы не будете иметь возможность передавать объекты, созданные по одному, чтобы методы в другом.
Пожалуйста, очистите свой пост с помощью лучшей грамматики, трудно понять ваш вопрос, и его можно закрыть. Если он закрыт, вы все равно можете изменить свой вопрос, и его можно снова открыть. –
Является ли «неполным» 'System.Data' подмножеством« полной »' System.Data'? Что произойдет, если вы просто используете «полный»? Похоже, вы столкнулись с проблемой между полной платформой .NET Framework и .NET Framework .NET. Что-то использует профиль клиента, но что-то еще нужно полностью. Если это так, установка полной Framework должна работать нормально. Вы определенно не хотите выбирать DLL между ними. – David
. Имена DLL не имеют значения, у вас могут быть разные пространства имен в тех же DLL-файлах –