我有一个格式如下的设置文件:
[Database]
Host=localhost
Username=root
Password=root
现在,我有一个名为的类Settings,DynamicObject所以我可以使用动态设置。当我解析文件时,包含设置的字典的键是标题+键。因此,例如,Host案例中的键是Database.Host,值是localhost。
现在,我希望用户像这样使用它:
dynamic settings = new Settings("Config.ini");
string host = settings.Database.Host;
但是,当我覆盖时TryGetMember,GetMemberBinder只包含Name,并且Name是 Database 而不是 Database.Host 应该是。我怎样才能“分割”GetMemberBinder Name财产?当我使用.该Name属性时,它不包含..
例如,
当我使用:
settings.Database.Host
然后
GetBinderName Name仅包含数据库,但应包含:
数据库.主机。
谢谢。
**编辑:**我还有一个问题。假设我有字符串名称 =“数据库”,然后我执行 settings.Name.Host。它不会将名称解析为数据库。有解决办法吗?