Я не уверен, как это исправить. У меня
public void get_json(String TYPE)
{
Type t = Type.GetType("campusMap." + TYPE);
t[] all_tag = ActiveRecordBase<t>.FindAll();
}
Но я всегда просто получаю
Ошибка 9 Не удалось найти тип или имя пространства имен 't' (вы
отсутствует директива использования или сборка
ссылка?) C: _SVN_ \ campusMap \ campusMap \ Controllers \ publicController.cs 109 17 campusMap
Любые идеи о том, почему, если я определяю тип, к которому я хочу получить доступ, говорят, что он не работает? Я попытался использовать отражение, чтобы сделать это без удачи. Кто-нибудь может привести пример решения?
[РЕДАКТИРОВАТЬ] возможное решение
Это попытка использовать отражение, и поэтому я передаю строку и вызываю метод с универсальным.
public void get_json(String TYPE)
{
CancelView();
CancelLayout();
Type t = Type.GetType(TYPE);
MethodInfo method = t.GetMethod("get_json_data");
MethodInfo generic = method.MakeGenericMethod(t);
generic.Invoke(this, null);
}
public void get_json_data<t>()
{
t[] all_tag = ActiveRecordBase<t>.FindAll();
List<JsonAutoComplete> tag_list = new List<JsonAutoComplete>();
foreach (t tag in all_tag)
{
JsonAutoComplete obj = new JsonAutoComplete();
obj.id = tag.id;
obj.label = tag.name;
obj.value = tag.name;
tag_list.Add(obj);
}
RenderText(JsonConvert.SerializeObject(tag_list));
}
и я получаю ошибку ..
obj.id = tag.id;
из
't' не содержит определения для 'id'
и то же самое для двух имен.