2015-01-15 55 views
-1

我想从我的配置文件中将值自动加载到特定类的属性中。 我想了好几个小时,但我自己找不到一个好的解决方案。将配置文件数据自动加载到类属性中

  • 使用默认构造函数创建一个BaseClass。因此,默认构造函数也可以搜索配置文件中的属性名称。这只对实体(只保存数据)有意义。如果我想为普通类使用这种方式,我不能使用其他继承。
  • 创建一个填充属性的工厂。可能也是,但我不想每次都使用工厂。这不够自动。
  • 类属性?如果我使用类属性,我可以从属性访问对象吗?

你如何在你的应用程序中做到这一点?哪种方式(你知道更好/其他方式?)是自动填充属性的最佳选择?

编辑 我会尽量多解释一下。我有一个应用程序与许多配置数据,我存储在一个XML文件。例如,像相机特定的数据,图像处理选项,使用sps类型等等。

如果我想把这个数据放到正确的类中,我必须一遍又一遍地传递这些数据。此外,我必须编写相同的代码(赋予属性值)。 所以我想要一个让它“神奇”自我的解决方案。

+0

我很难理解你想要完成什么。如果您只是自动从配置文件加载值,那么只要引用它,任何属性都不能从配置文件中获取值? (也许将这个值存储在一个类级别的成员中以缓存它,所以不需要再次获取它。)你所说的大部分内容听起来像是过度复杂化了配置文件查找,或者我只是不理解问题的性质在哪里? – David 2015-01-15 18:28:52

+0

您可以使用配置管理器像这样从配置文件加载值。在类级声明'private string value1 = ConfigurationManager.AppSettings [“Configappkey”];' – prasy 2015-01-15 18:31:04

+1

您是否考虑过System.Configuration的支持? http://haacked.com/archive/2007/03/12/custom-configuration-sections-in-3-easy-steps.aspx/ – fsimonazzi 2015-01-15 18:32:12

回答

0

也许你正在寻找连载:维基百科:

In computer science, in the context of data storage, serialization is the process of 
translating data structures or object state into a format that can be stored (for 
example, in a file or memory buffer, or transmitted across a network connection link) and 
reconstructed later in the same or another computer environment. 

http://en.wikipedia.org/wiki/Serialization

所以,你可以只创建您的配置类有variour为不同的配置值的属性。然后将该类序列化到一个文件('保存配置')并反序列化文件('加载配置')。

像这样,您不必担心类属性映射到文件属性。

很多语言已经内置了帮助序列化对象的帮助器。例如:

http://msdn.microsoft.com/en-us/library/4abbf6k0%28v=vs.110%29.aspx

+0

我知道序列化。但是,然后我在我的项目中有一个巨大的配置类,我必须自己分配值。我想避免这最后一步。 – Mitja 2015-01-15 18:38:30

相关问题