Si desea crear un tipo dinámicamente en tiempo de ejecución, el método Activator.CreateInstance lo hará por usted. Si la emisión es del tipo que tiene un constructor con parámetros, esta sobrecarga lo hará. Por ejemplo, http://msdn.microsoft.com/en-us/library/wcxyzt4d.aspx
Aconsejo que busque entre las sobrecargas la mejor coincidencia.
El problema del espacio de nombres no debe ser relevante: siempre que el dll esté en el directorio bin o en el GAC, debería estar bien. Las reglas pueden cambiar si el ensamblado es Strong named.
¿Podría proporcionar un código snippiet del código que no está funcionando (utilizando el método que ha vinculado)? ¡Este + los errores que estás viendo serán muy útiles! [update] Muestra rápida usando el Activator.CreateInstance que maneja Constructores con parámetros.
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; }
}
}
Type.GetType() no parece encontrar el tipo con la cadena que le doy. La clase Prop se define en el espacio de nombres Reaver.GamePlay, pero el tipo devuelto es nulo. –
También probé "Reaver.GamePlay.Prop, Reaver.GamePlay" en vano. –
@Ben: ¿En qué ensamblaje se encuentra? ¿El ensamblaje está fuertemente tipado? –