поэтому я наткнулся на создание нескольких программ, которые создают конкретные XML-файлы с данными из базы данных.
Теперь я хотел бы создать приложение, которое я мог бы просто повесить на структурированный класс со значениями, и он мог быдинамически читать его.
Моя идея этого класса примерно такая:
public class Order
{
public string PO_NO { get; set; }
................
public List<OrderDetails> OrderDetails = new List<OrderDetails>();
}
, и XML будет выглядеть следующим образом
<ORDER>
<PO_NO>18060001</PO_NO>
....
-<ORDER_DETAILS>
-<ORDER_DETAIL>
</ORDER_DETAIL>
-<ORDER_DETAIL>
</ORDER_DETAIL>
...
</ORDER_DETAILS>
-</ORDER>
Я надеюсь, что это охватываетструктура и идея.
До сих пор я борюсь с динамическим чтением класса.
Последняя и, к сожалению, самая близкая попытка заключается в следующем:
foreach (var refer in DatabaseData.getRefs()) //just gets reference numbers for me, for further reading
{
//THIS one returns the filled class. Eg. the Order class explained higher.
var MyClass = DatabaseData.read(refer);
var fiel = DatabaseData.read(refer).GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public);
foreach (var field in fiel)
{
var fieldName = field.Name.Replace('<', ' ').Replace('>', ' ').Replace("__", null).Replace("kBackingField", null);
if (field.FieldType.ToString().Contains("List"))
Debug.WriteLine("its a list");
else
Debug.WriteLine((string)DatabaseData.read(refer).GetType().GetField(fieldName).GetValue(Activator.CreateInstance(DatabaseData.read(refer).GetType())));
}
}
Это та часть, которая беспокоит меня,Я пробовал много вариантов этого, я нашел на форумах, но я все еще получаю.Ссылка на объект не установлена на экземпляр объекта.
(string)DatabaseData.read(refer).GetType().GetField(fieldName).GetValue(Activator.CreateInstance(DatabaseData.read(refer).GetType()))
Есть идеи, пожалуйста?Или укажите мне правильный путь.
Заранее спасибо.