Der Plan:
So, jetzt, was ich will im Grunde ist meine propertys aus der Klasse zu nehmen, damit der Benutzer einige holt und dann nur mit dem propertys aus einer Liste ziehen von MongoDB.
Der Code:
hier ist, wo die Methode beginnt:
private void DoStuffExecute(object obj)
{
Class class= new Class();
ExtractClass(class);
if (propList != null)
{
var result = classService.DoStuff(propList);
}
}
in "ExtractClass()" die Propriétés werden aus der Klasse gezogen.
void ExtractClass(object obj)
{
foreach (var item in obj.GetType().GetProperties())
{
propList.Add(item.Name);
}
}
und schließlich in "classService.DoStuff()" Ich versuche, die "Felder" zu setzen.
public List<class> DoStuff(List<string> Props)
{
try
{
var filter = Builders<class>.Filter.Empty;
var fields = Builders<class>.Projection.Include(x => x.ID);
foreach (var item in Props)
{
string str = "x.";
str += item.ToString();
fields = Builders<class>.Projection.Include(x => str);
fields = Builders<class>.Projection.Include(x => item);
}
var result = MongoConnectionHandler.MongoCollection.Find(filter).Project<class>(fields).ToList();
return result;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
var result = new List<class>();
return result;
}
}
wenn ich laufe das Programm es gibt mir ein „Kann die Serialisierungsinformationen für x => Wert bestimmen,“ ... da im ihm einen String geben.
Die Frage: Hat jemand eine Idee hat, wie oben den Code zu reparieren oder sogar den Plan der Arbeit in einer anderen Art und Weise machen?
danke.