我需要匹配FixedFormatSettings的属性。例如,我可能有字符串" BitmapUnembeddableFonts"和" UsePdaA"在一个字符串[]。如果我想循环遍历字符串[],并将我找到的任何匹配属性(作为字符串)设置为true(例如,FixedFormatSettings.UsePdaA = true),我将如何进行此操作?
答案 0 :(得分:1)
使用下一个代码作为通过使用名称及其值的字典来设置属性的示例。
var valuesToSet = new Dictionary<string, object>
{
{"BitmapUnembeddableFonts", false},
{"UsePdaA", true}
};
var settings = new FixedFormatSettings();
var properties = settings.GetType()
.GetProperties()
.Where(p => p.CanWrite);
foreach (var property in properties)
{
object valueToSet;
if(valuesToSet.TryGetValue(property.Name, out valueToSet))
{
property.SetValue(settings, valueToSet);
}
}
Console.WriteLine(settings.BitmapUnembeddableFonts); //false
Console.WriteLine(settings.UsePdaA); //true