與下面的類,我試圖讓:在C#反射獲取從對象的字段和值
- 字段名
- 值
我想這一段代碼:
Dictionary<string, string> listField =
membership.GetType()
.GetFields(BindingFlags.NonPublic)
.ToDictionary(f => f.Name,
f => (string)f.GetValue(null));
但我在字典裏什麼都沒有。
有什麼想法?
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="MyClass", Namespace="http://model.common.party.ent.gfdi.be")]
[System.SerializableAttribute()]
public partial class MyClass : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
[System.NonSerializedAttribute()]
private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
[System.Runtime.Serialization.OptionalFieldAttribute()]
private string firstName;
[System.Runtime.Serialization.OptionalFieldAttribute()]
private string lastName;
[System.Runtime.Serialization.OptionalFieldAttribute()]
private System.Nullable<long> fieldA;
[System.Runtime.Serialization.OptionalFieldAttribute()]
private bool fieldB;
[System.Runtime.Serialization.OptionalFieldAttribute()]
private int fieldC;
}
我想你可能會丟失一些綁定標誌,我不是反射大師,但我記得不得不指定'BindingFlags.Instance'來獲取實例級別fie lds,(反之亦然靜態) – Charleh
他們是私人領域。你爲什麼試圖序列化/反序列化它們,你爲什麼試圖獲得它們的值?反而讓他們公開。 –
更緊密的人不僅可以找到私人的,但找到私人和價值 –