Затраты на SQL Server и Oracle не то, что далеко друг от друга, Вы знаете.
На самом деле для маленьких систем стоимость Oracle по сравнению с Вашей Любимой Свободной Базой данных между нулем (Oracle Express Edition) и not-very-big (процессор за 5 800$, бесконечный для Standard Edition Один).
Вот ссылка на возможности различных выпусков в 11 г: http://www.oracle.com/database/product_editions.html .
Объявленные цены доступны для всех территорий в http://store.oracle.com - обычно крупные компании не платят розничную продажу, конечно, ;)
почему вы определяете сборку для использования типа get !, также вам нужно указать пространство имен
string toNativeTypeName = "System.Int32";
Type t = Type.GetType(toNativeTypeName );
MessageBox.Show(t.FullName);
Что ж, если это действительно полное имя типа (то есть включая пространство имен) и он находится в этой сборке, тогда он должен работать. Не могли бы вы привести пример, где этого не происходит? Поскольку вы используете Assembly.GetType
вместо Type.GetType
, вы не должны включать имя сборки в имя типа.
Обратите внимание, что имя для универсального типа не то, что вы могли бы ожидать. Например, вы должны использовать:
assembly.GetType("System.Collections.Generic.List`1");
, чтобы получить общий тип списка, а затем использовать Type.MakeGenericType
для предоставления аргументов типа.
Конечно, это актуально только тогда, когда тип является универсальным. Если проблема не в этом, я бы дважды проверил, действительно ли тип находится в вашей входной сборке.
РЕДАКТИРОВАТЬ: О, и имейте в виду, что вложенные типы будут «Контейнер + Вложенный»
Скорее всего, имя вашего типа неверно. Если вы создадите ссылку на тип в коде, а затем проверите его свойство Type.FullName
, вы увидите, как должно выглядеть имя типа.
Также вы можете попробовать метод Type.GetType
и посмотреть, что он возвращает. Может, вашего типа вообще нет в этой сборке?
Изменить: Оказывается, я ошибался, используя свойство Type.FullName. Если вы используете свойство Type.AssemblyQualifiedName, вы получите полное имя, которое может использоваться Type.GetType.
Для System.Xml.XmlNode вы получите следующее имя: System.Xml.XmlElement, System. Xml, Версия = 2.0.0.0, Культура = нейтральный, PublicKeyToken = b77a5c561934e089
Я наткнулся на эту ветку и заметил, что исходный вопрос еще не получил полного ответа. Я мог ошибаться, но, читая вопрос, я думаю, что авторы намеревались просто получить тип из сборки, на которую есть ссылка, или части вашего приложения.
Вот что я сделал, чтобы решить эту проблему.
public static Type GetTypeFromFullName(string fullClassName)
{
AssemblyPartCollection parts = Deployment.Current.Parts;
foreach (var part in parts)
{
Uri resUri = new Uri(part.Source, UriKind.Relative);
Stream resStream = Application.GetResourceStream(resUri).Stream;
Assembly resAssembly = part.Load(resStream);
Type tryType = resAssembly.GetType(fullClassName, false);
if (tryType != null)
return tryType;
}
return null;
}