.NET: Type.Parse не работает? - PullRequest
       12

.NET: Type.Parse не работает?

2 голосов
/ 02 апреля 2010

Что я делаю не так?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework.Graphics;
using Box2D.XNA;
//...
Type.Parse("GameObjectModel");

Ошибка компиляции:

'System.Type' does not contain a definition for 'Parse'

Я пытаюсь получить тип имени класса из строки, чтобы я мог создать экземпляр этого класса.

Ответы [ 3 ]

4 голосов
/ 02 апреля 2010

Похоже, вы пытаетесь получить тип из строки, в этом случае я думаю, что вы после Type.GetType("GameObjectModel") см. Здесь для использования .

1 голос
/ 02 апреля 2010

Вы должны написать typeof(GameObjectModel).

Если "GameObjectModel" - строка, известная только во время выполнения, вам следует вызвать Type.GetType.

Чтобы создать экземпляр класса типа, известного только во время выполнения, напишите следующее:

object myInstance = Activator.CreateInstance(Type.GetType(typeName));

Однако работать с ним будет медленно и сложно. (вам нужно использовать отражение или приведение к известному базовому типу или интерфейсу)
Что ты пытаешься сделать?

0 голосов
/ 02 апреля 2010

Если вы пытаетесь превратить строку в System.Type, возможно, вам нужна функция Assembly.GetType ?

Если вы пытаетесьполучить экземпляр, вам вообще не нужен тип. Activator.CreateInstance имеет перегрузок , которые просто принимают строковое имя типа напрямую.

...