Setting properties with reflection on static classes
我想创建一个静态类,从XML文件中加载一些设置,并将这些设置应用到它自己的属性中。
我正在尝试使用以下代码,但我不知道给setValue方法提供什么,因为我们要为其设置属性的类是静态的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | // some code removed ... Type settingsType = typeof(Settings); // Settings is a static class foreach (PropertyInfo propertyInformation in settingsType.GetProperties(BindingFlags.Public | BindingFlags.Static)) { //------------------------------------------------------------ // Determine if configured setting matches current setting based on name //------------------------------------------------------------ if (propertyInformation.Name.Equals(name, StringComparison.OrdinalIgnoreCase)) { //------------------------------------------------------------ // Attempt to apply configured setting //------------------------------------------------------------ try { if (propertyInformation.CanWrite) { propertyInformation.SetValue(this, Convert.ChangeType(value, propertyInformation.PropertyType, CultureInfo.CurrentCulture), null); } } catch { } break; } |
}
甚至可以在静态类上使用反射设置属性吗?
比如通过