Wenn Sie einen Typ dynamisch zur Laufzeit erstellen möchten, übernimmt die Methode Activator.CreateInstance diese Aufgabe für Sie. Wenn es darum geht, dass der Typ einen Konstruktor mit Parametern hat, wird diese Überladung dies tun. Zum Beispiel, http://msdn.microsoft.com/en-us/library/wcxyzt4d.aspx
Ich empfehle, die Überlastungen nach der besten Übereinstimmung zu durchsuchen.
Das Namespace-Problem sollte keine Rolle spielen - solange sich die Dll im bin-Verzeichnis oder im GAC befindet, sollte alles in Ordnung sein. Die Regeln können sich jedoch ändern, wenn die Assembly Strongly named ist.
Könnten Sie einen Codeausschnitt des Codes zur Verfügung stellen, der nicht funktioniert (unter Verwendung der von Ihnen verlinkten Methode)? Dies und die Fehler, die Sie sehen, wären sehr hilfreich! [update] Schnelles Beispiel mit Activator.CreateInstance, das Konstruktoren mit Parametern behandelt.
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; }
}
}