我有一个格式如下的设置文件:
[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。它不会将名称解析为数据库。有解决办法吗?