Вы можете использовать:
Activator.CreateInstance(Type.GetType(typeName))
Конечно, это работает только для типов с конструктором без параметров.
Обновление (инициализация объекта):
Вы можете использовать функции динамической типизации C # 4 для установки свойств вновь созданного объекта:
dynamic newObj = Activator.CreateInstance(Type.GetType(typeName));
newObj.NestedName = str;
В контексте запроса LINQ to XML вам, возможно, придется прибегнуть к лямбда-синтаксису с явным телом:
var list = XMLFile.Select(someObjs => {
dynamic nestedObj = Activator.CreateInstance(
Type.GetType(someObjs.Element("nestedObj").Element("type")));
nestedObj.NestedName = (string)someObjs.Element("nestedObj").Element("name");
return new someObj {
Name = (string)someObjs.Element("name"),
NestedObj = nestedObj
};
}).ToList();