C# 将字符串与类属性匹配

C# 将字符串与类属性匹配,c#,C#,我需要匹配的属性。例如,我可能在字符串[]中包含字符串“BitmapUnembeddableFonts”和“UsePdaA”。如果我想循环遍历字符串[],并将我找到的任何匹配属性(作为字符串)设置为true(例如FixedFormatSettings.UsePdaA=true),我将如何执行此操作?使用下一个代码作为示例,通过名称及其值的字典来设置属性 var valuesToSet = new Dictionary<string, object>

我需要匹配的属性。例如,我可能在字符串[]中包含字符串“BitmapUnembeddableFonts”和“UsePdaA”。如果我想循环遍历字符串[],并将我找到的任何匹配属性(作为字符串)设置为true(例如FixedFormatSettings.UsePdaA=true),我将如何执行此操作?

使用下一个代码作为示例,通过名称及其值的字典来设置属性

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
var valuesToSet=新字典
{
{“BitmapUnembeddableFonts”,false},
{“UsePdaA”,对}
};
var settings=新的FixedFormatSettings();
var properties=settings.GetType()
.GetProperties()
其中(p=>p.CanWrite);
foreach(属性中的var属性)
{
对象值设置;
if(valuesToSet.TryGetValue(property.Name,out valueToSet))
{
设置值(设置、值设置);
}
}
Console.WriteLine(settings.BitmapUnembeddableFonts)//假的
Console.WriteLine(settings.UsePdaA)//真的

如何找到要设置为此属性的值?除了
true
对于
UsePdaA
是否可能使用反射?不知道确切的问题是什么。。。你试过什么?如果你能给我们展示一下你的努力,那就太好了。