Задать вопрос
@booleansky
Интузиаст...

Как получить тип из переменной?

Здравствуйте уважаемые. Суть проблемы такова.
Получаю JSON в методе "DataCreate(string JsonData, string ObjectName)"
JsonData- сами данные
ObjectName - имя объекты в который эти данные необходимо десериализовать.

var DataObject = oJS.Deserialize<ObjectName>(JsonData);


Строка ObjectName содержит имя в виде строки. Так вот я не могу использовать не Type не Activator.
Нужен конкретный тип. Как же мне его получить.

[HttpPost]
        public JsonResult DataCreate(string JsonData, string ObjectName)
        {
            JavaScriptSerializer oJS = new JavaScriptSerializer();
            var DataObject = oJS.Deserialize<ObjectName>(JsonData);
            return Json(new { Message = "Данные добавлены"}, JsonRequestBehavior.AllowGet);
        }
  • Вопрос задан
  • 80 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
shai_hulud
@shai_hulud
Это просто очень большая дыра в безопасности, если позволять мапить объект на любой тип. Рано или поздно будет подобран тип, который на сете свойства будет исполнять/интерпретировать результат и этой дырой воспользуются.

Безопасно будет мапить на известные типы через switch. Либо через заранее подготовленный словарик "имя/тип".
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
Через reflection
var findClass = System.Reflection.Assembly.GetEntryAssembly().GetTypes().FirstOrDefault(t => t.Name == "FindMe");
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы