我试图访问存储在String,UnknownClass类型的字典中的对象.我有密钥,并且知道值是几个容器类之一.由于值传递给接受对象的方法,因此我不需要知道存储为值的类的类型.我还需要调用ContainsKey来确认密钥是否存在.
我尝试了以下方法但没有成功:
Dictionary list = (Dictionary)source.GetType().GetProperty(dictionaryName).GetValue(source, null);
nextSource = list[key];
这给了我一个投射错误,并且:
nextSource = source.GetType().GetMethod("get_Item").Invoke(source, new object[] { key });
这给了我一个空的引用异常.
这里有一些代码,虽然我不太确定它会有多大帮助.
private void SetValue(object source, String path, String value)
{
if (path.Contains('.'))
{
// If this is not the ending Property, continue recursing
int index = path.IndexOf('.');
String property = path.Substring(0, index);
object nextSource;
if(property.Contains("*"))
{
path = path.Substring(index + 1);</