Чтение lua в c# объект - PullRequest
       0

Чтение lua в c# объект

0 голосов
/ 13 февраля 2020

Я знаю, что можно передавать Json данные в c# объект, но можно ли это сделать с lua?

Допустим, это мой lua код:

data:extend(
{
  {
    type = "technology",
    localised_name = {"technology-name.logistic-science-pack"},
    effects =
    {
      {
        type = "unlock-recipe",
        recipe = "logistic-science-pack"
      }
    },
    unit =
    {
      count = 75,
      ingredients = {{"automation-science-pack", 1}},
      time = 5
    },
  },
  {
    type = "technology",
    localised_name = {"technology-name.chemical-science-pack"},
    effects =
    {
      {
        type = "unlock-recipe",
        recipe = "chemical-science-pack"
      }
    },
    unit =
    {
      count = 75,
      ingredients =
      {
        {"automation-science-pack", 1},
        {"logistic-science-pack", 1}
      },
      time = 10
    },
    prerequisites = {"advanced-electronics", "sulfur-processing"},
  },
}
)

Да, это список того же объекта. Этот код, сокращенно, взят из игры, которую я взял в качестве примера (и что я использую для игры с lua).

Можно ли преобразовать этот lua код / ​​данные в c# объект или, по крайней мере, в Json, поэтому позже вы можете преобразовать Json в c# объект?

Я пытался найти ответ на net, но все, что я ' Я нашел способ использования lua для скриптов или написания скрипта для создания и хранения c# объектов. Ничего, что я ищу.

Также какой пакет nuGet я должен получить или вы порекомендуете? Кажется, их много в браузере пакетов NuGet (VS), и по поводу net есть много разных мнений.

Заранее спасибо!

1 Ответ

2 голосов
/ 13 февраля 2020

Если вы используете lua C# движок (например, N lua), вы можете получить объект непосредственно из этого движка. Если вы называете lua состояние как state, оно может быть возвращено state.DoString ("return data")[0].

Если вы подключаетесь только к C#, вы должны использовать сериализацию. JSON - это хорошо документированный и зрелый формат, имеющий множество библиотек lua. Мой личный рекорд - дк json.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...