l'extension de Convertir.ChangeType pour produire des types définis par l'utilisateur sur demande

Compte tenu de la classe:

public class Foo
{
    public string Name { get; set; }
}

Est-il possible d'avoir un Foo instance créée à partir d'une chaîne à travers les Convertir.ChangeType:

Type type = typeof(Foo);
object value = "one";

value = System.Convert.ChangeType(value, type);

C'est comment une 3ème partie de l'API est de tenter de reconstruire des objets. Quelqu'un a mentionné, c'est possible avec les opérateurs, mais à partir de ma compréhension qui me permettra de le faire, de ne pas créer l'objet:

Foo foo = new Foo() { Name = "one" };
string fooAsString = foo;  //implicit conversion -- no cast needed

Est-il un moyen de créer l'objet de cette façon? Aussi, je ne avoir la capacité de changer le Convertir.ChangeType si il y a une autre façon de le faire.

Mise à jour:
La raison que je demande c'est parce qu'il jette et des une exception:

Invalide cast de 'Système.String' pour
'JibbaJabba+Foo'.

et l'ajout de l'opérateur n'a pas résolu le problème.

Je tiens à noter que j'ai essayé de l'opérateur implicite et il ne fonctionne pas.
Veuillez noter que vous pouvez avoir un opérateur implicite dans les deux sens, mais il est encore un compilateur C# fonction et n'est pas destiné à être utilisé par les déjà-code compilé. Très probablement, vous avez à regarder et à voir que la 3e partie de la bibliothèque vous permet de créer les objets vous-même, peut-être il ya une surcharge qui accepte un Converter<string, T> délégué?

OriginalL'auteur blu | 2010-10-02