WEB开发网
开发学院软件开发C语言 [C#] 如何将String类型转换成任意基本类型 阅读

[C#] 如何将String类型转换成任意基本类型

 2010-09-30 21:06:30 来源:WEB开发网   
核心提示: DEMO:在配置文件里自定义配置:1. 在<configSections></configSections>节点内添加节点:<sectionname="XuConfig"type="System.Configuration.NameVa

DEMO:

在配置文件里自定义配置:

1. 在<configSections></configSections>节点内添加节点:

  <section name="XuConfig" type="System.Configuration.NameValueSectionHandler" />

2. 写配置看起来会是这样的:

    <configSections>
      //..其它代码
      <section name="XuConfig" type="System.Configuration.NameValueSectionHandler" />
    </configSections>
    <XuConfig>
      <add key="ID" value="123"/>
      <add key="Name" value="YcoeXu"/>
      <add key="Roles" value="Member,Admin"/>
    </XuConfig>

写个类自动加载

using System;
using System.Reflection;
using System.Collections.Specialized;
using System.Configuration;
using YcoeXu.Common;
namespace YcoeXu.Test
{
    public class XuConfig
    {
        private XuConfig() { }
        private static XuConfig config = null;
        private static XuConfig Instance
        {
            get
            {
                if (config == null)
                {
                    config = new XuConfig();
                    Type type = typeof(XuConfig);
                    //从配置文件里读取XuConfig节点
                    NameValueCollection xuConfig = (NameValueCollection)ConfigurationManager.GetSection("XuConfig");
                    //根据Key匹配对应的属性
                    foreach (String key in xuConfig.AllKeys)
                    {
                        PropertyInfo pi = type.GetProperty(key);
                        if (pi == null || String.IsNullOrEmpty(xuConfig[key]))
                            continue;
                        //自动转换类型并注入值
                        pi.SetValue(config, xuConfig[key].Format(pi.PropertyType), null);
                    }
                }
                return config;
            }
        }
        public int ID { set; get; }
        public String Name { set; get; }
        public Role[] Roles { set; get; }
        public void Test()
        {
            Console.WriteLine(XuConfig.Instance.Name);
            Console.WriteLine(XuConfig.Instance.ID);
            foreach (Role r in XuConfig.Instance.Roles)
            {
                Console.WriteLine(r.ToString());
            }
        }
    }
    public enum Role
    {
        Guest,
        Member,
        Manager,
        Admin
    }
}

注意了,一定要添加一个引用:System.Configuration 

这里对String进行了一些扩展,使它可以直接当成String对象的方法访问了,是不是很方便呢。hoho~~~

项目中的一点点心得,发现网上还没有人放出这种方法,这里就写出来给大家分享下,相信对大家以后进行类似的自动转换或赋值的功能实现会有很大的帮助

好啦,公司貌似又要转向PHP了,上年刚从java转到C#,明年又要转向其它语言了,hoho~~~

上一页  1 2 

Tags:如何 String 类型

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接