I am writing a Clone method using reflection. How do I detect that a property is an indexed property using reflection? For example:
public string[] Items { get; set; }
My method so far:
public static T Clone<T>(T from, List<string> propertiesToIgnore) where T : new() { T to = new T(); Type myType = from.GetType(); PropertyInfo[] myProperties = myType.GetProperties(); for (int i = 0; i < myProperties.Length; i++) { if (myProperties[i].CanWrite && !propertiesToIgnore.Contains(myProperties[i].Name)) { myProperties[i].SetValue(to,myProperties[i].GetValue(from,null),null); } } return to; }
if (propertyInfo.GetIndexParameters().Length > 0) { // Property is an indexer }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With