c# - Data class public properties to Dictionary -


I use the following code to convert the public properties of my class into a single dictionary:

  Public Stable Dictionary & lt; String, Object & gt; ClassPropsToDictionary & LT; T & gt; (ClassProps) {classProps.GetType () returned GetProperties (BindingFlags.Instance | BindingFlags.Public) .toDictionary (prop = & gt; prop.Name, prop = & gt; prop.getveralu (classProps, tap)). ; }  

This works fine, but I do not want to refer to the class reference:

  public class unit {public virtual string description {get; Set; } // Fine Public Virtual Employee Employee Employee {Received; Set; } // do not want it}  

What binding flag do I want to avoid from the employee's member?

Thanks

where with IsClass Use the property:

  classProps .GetType () .GetProperties (! BindingFlags.Instance | BindingFlags.Public). Where (x => x.PropertyType.IsClass) .ToDictionary (prop = & gt; prop.Name, prop = & gt; prop.getValue (classProps, tap));  

There is no binding flag for this. Most are relevant to the binding pumps access modifiers and heritage hierarchies. They can not be quoted to eliminate the value type or reference types. If you do not want to eliminate the underlying type like string , then declare an array, put all the types in it , Then contains :

  var allowed type = new [] {typeof (string), ...}; .Where (X => X.PropertyType.IsClass {allowedTypes.Contains (x.PropertyType))  

The built-in type of remains in the system < / Code> Namespaces can also be done in this easy way:

  .Where (! X => x.PropertyType.IsClass {x.PropertyType.AssemblyQualifiedName.StartsWith (" System "))  

Comments

Popular posts from this blog

Python Equivalent for matlab cart2pol and pol2cart -

Docker - Tomcat and PostgreSQL containers in same host - No Route to host -

sip - Call SipJs to Asterisk 12 -