Разработка Autodesk Revit
Я сериализовал точку XYZ из класса (точки) из контейнера (точки и теги) в файл.
public class Serialize_pack
{
public View_3D_Data v3ddata;
public Tag_Class tg;
}
с помощью этого метода
public static void serializeme(object classme)
{
string coor_file = constants.SenddDir() + constants.filename();
using (StreamWriter file = File.CreateText(coor_file))
{
JsonSerializer serializer = new JsonSerializer();
serializer.Serialize(file, classme);
}
}
и я получил эти результаты
{"Очки":{"bboxmin":{"Z":-1000,0,"Y":-100,0,"X":-100,0},"bboxmax":{"Z":-0,1,"Y":100,0 ,"X":100.0}},"tg":{"eId":"666470","text":"coor: Поцелуй меня"}}
при десериализации я получил результаты для всех точек со значением (0.0,0.0,0.0), что является результатом невозможности проанализировать прочитанные значения до их уступчивого типа.
Метод десериализации
public static object deserializeme(string path)
{
Serialize_pack accquired = null;
using (StreamReader file = File.OpenText(path))
{
JsonSerializer serializer = new JsonSerializer();
accquired = (Serialize_pack)serializer.Deserialize(file, typeof(Serialize_pack));
}
return accquired;
}
Хотел бы я найти хороший способ преобразовать и переопределить этот беспорядок.
Редактировать: Exact Newton.JSon OutPut
{"Очки":{"bboxmin":{"Z":-1000,0,"Y":-100,0,"X":-100,0},"bboxmax":{"Z":-0,1,"Y":100,0 ,"X":100.0},"sboxmin":{"Z":-10.277690406517843,"Y":-13.533464566929133,"X":-13.389107611548557},"sboxmax":{"Z":16.510826771653544,"Y": 13.533464566929133, "x": 13.389107611548557}, "Ворейп": {"z": 30.114082470913921, "y": 34.471718543415037, "x": - 7.7202528373680934}, "Vorfwd": {"z": - 0.57735026918962573, "Y": -0.57735026918962584,"X":0.57735026918962573},"vorUP":{"Z":0.816496580927726,"Y":-0.408248290463863,"X":0.40824829046386296},"5gs-fa46386296},"5-fa-Moust":"1Arch_Moustname" ":{"eId":"666470","origin":{"Z":1154.5239372729186,"Y":1164.3934060532893,"X":-1119.6229882673815},"text":"coor: Поцелуй меня","ledelbo" :{"Z":1157.6807845880096,"Y":1163.9955344285622,"X":-1116.8640125770175}}}
Класс тега
public class Tag
{
public string eId;
public XYZ origin;
public string text;
public XYZ ledelbo;
public void getTagdata(View v)
{
///we need all the annotation to be sent.
/// do some stuff and cast the results on the public variables
}
}
Класс очков
public class Points
{
public XYZ bboxmin;
public XYZ bboxmax;
public XYZ sboxmin;
public XYZ sboxmax;
public XYZ vorEyP;
public XYZ vorFwD;
public XYZ vorUP;
public string v3dname;
[JsonIgnore]
public View3D view;
public void get3dviewdata()
{
///we need all the points to be sent.
/// do some stuff and cast the results on the public variables
}
}