Проблема в том, что вы создали основной проект dotnet, но podio - это проект фреймворка dotnet. Попробуйте вместо этого воссоздать свой проект в качестве фреймворка dotnet. Вместо Console App (.NET Core)
выберите Console App (.NET Framework)
при создании нового проекта.
Отказ от ответственности: Сериализация bean-компонента в URL не такая уж хорошая идея для GWT. Я узнал, что если нужно поместить данные в URL, их должно быть как можно меньше и только то, что необходимо для восстановления состояния вашей страницы. Посмотрите, как Gmail использует свои маркеры истории, и вы увидите, что он довольно минимален.
С этим отказом от ответственности:
Для проекта GWT, над которым я работал, я просто записал значения компонента, разделенные разделителем. При чтении значений обратно я использовал метод String.split (), чтобы получить массив. С этим массивом я присваиваю значения обратно свойствам правого бина. В коде:
public class Sample {
private int a;
private boolean b;
private String c;
//getters and setters for fields not shown
public String toHistoryToken(){
return a+"/"+b+"/"+c;
}
public void fromHistoryToken(String token){
String[] values=token.split("/");
a=Integer.parseInt(values[0]);
b=Boolean.parseBoolean(values[1]);
c=values[2];
}
}
Для более сложных сценариев вам, возможно, придется делать более сложные вещи. Например, для вложенных объектов необходимо написать код для передачи значений дочерним объектам.
Кроме того, Имейте в виду, что вы должны убедиться, что любые значения, которые вы используете, не содержат разделитель. Поэтому, если вы знаете, что ваши строки могут содержать «/», вам, возможно, придется выполнить операцию замены (), чтобы избежать вложенных разделителей.
Я не уверен, что понимаю, чего вы в конечном итоге пытаетесь достичь.
Если вы действительно просто хотите чтобы отправлять строки туда и обратно, вам не нужно ничего делать - вы получаете это бесплатно, используя обычный механизм GWT RPC. Просто создайте метод, который возвращает java.lang.String
, создайте сопутствующую реализацию и интерфейс Async, и все готово.
Если, с другой стороны, вы действительно хотите отправить бин, просто убедитесь, что он имеет конструктор с нулевым аргументом и реализует Serializable
или IsSerializable
.
The closest that I could find was this:
Faster GWT startup with objects embedded in the HTML host page
Может быть, это то, что вы ищете?
Json <-> сериализация Java, которая работает с GWT
Расширенная версия:
Использование библиотеки Json-lib:
http://json-lib.sourceforge.net/
Вы можете сделать это (перейти от бина к строке json):
http://json-lib.sourceforge.net/snippets.html#Creating_a_JSONObject_from_a_JavaBean
В конечном итоге GWT работает в JavaScript (даже если он написан на Java). В этом смысле «Java-бины» - это не те вещи, которые вы легко можете найти в клиенте, но они отлично работают на сервере (в Java).
Если вы признаете, что bean-компонент - это на самом деле просто объект без методов, то у вас есть намерение в их использовании для перемещения данных. Исходно из JavaScript, JSON действует как чрезвычайно гибкий контейнер для данных. На стороне сервера массив Beans может быть преобразован в JSON с помощью BeanUtils (и немного прохождения). JSON можно сериализовать в GWT в виде строки, а в GWT есть анализатор для преобразования JSON обратно в объекты JavaScript для клиента.
Вероятно, это не самый простой способ сделать это, но он очень гибок, как только он заработает.
Могут быть некоторые нюансы GWT, которые усложняют вещи, но обычно такие вещи, как:
должен работать.