Если вы хотите создать тип динамически во время выполнения, Activator.CreateInstance Method сделает это за вас. Если вы выпускаете тип, имеющий конструктор с параметрами, эта перегрузка сделает это.
Например,
http://msdn.microsoft.com/en-us/library/wcxyzt4d.aspx
Советую посмотреть перегрузки для лучшего соответствия.
Проблема пространства имен не должна быть релевантной - до тех пор, пока dll находится в каталоге bin или GAC, вы должны быть в порядке. Правила могут измениться, если сборка имеет строгое имя.
Не могли бы вы предоставить фрагмент кода кода, который не работает (используя метод, на который вы ссылались)? Это + ошибки, которые вы видите, будут очень полезны!
[Обновить]
Быстрый пример с использованием Activator.CreateInstance, который обрабатывает конструкторы с параметрами.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
BaseProduct b =(BaseProduct)System.Activator.CreateInstance(Type.GetType("ConsoleApplication1.Product")
,new object[]{typeof(string)},
new object[]{"123"}
);
//Activator..::.CreateInstance Method (Type, array<Object>[]()[], array<Object>[]()[])
}
}
public class Product: BaseProduct{
public Product(string id) {
}
public string Id {get;set;}
}
public abstract class BaseProduct {
abstract public string Id { get; set; }
}
}