using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string humenstring = "zhangshan,12,1232565425";
TypeConverter converter = TypeDescriptor.GetConverter(typeof(Humen));
Humen humen1= converter.ConvertFromString(humenstring) as Humen;
Console.WriteLine(humen1.Name);
}
}
[TypeConverter(typeof(HumenTypeConverter))]
public class Humen
{
public string Name { get; set; }
public int Age { get; set; }
public string Phone { get; set;}
public Humen(string name, int age, string phone)
{
this.Name = name;
this.Age = age;
this.Phone = phone;
}
public static Humen Parse(string strhumen)
{
string[] split = strhumen.Split(',');
if (split.Length != 3)
{
throw new FormatException("无效的类型");
}
string name=split[0];
int age;
string phone=split[2];
if (!int.TryParse(split[1], out age))
{
throw new FormatException("无效的类型");
}
return new Humen(name, age, phone);
}
}
public class HumenTypeConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
//return base.CanConvertFrom(context, sourceType);
return sourceType == typeof(string);
}
public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value)
{
if (value is string)
{
return Humen.Parse(value as string);
}
return base.ConvertFrom(context, culture, value);
}
}
}
自定义类型转换器
最新推荐文章于 2023-11-29 23:13:01 发布