public void TestStringConverter() { StringConverter stringConverter = new StringConverter(); Assert.True(stringConverter.CanConvertTo(typeof(string))); Assert.True(stringConverter.CanConvertTo(typeof(StringBuilder))); Assert.False(stringConverter.CanConvertTo(typeof(float))); Assert.False(stringConverter.CanConvertTo(typeof(double))); Assert.False(stringConverter.CanConvertTo(typeof(decimal))); Assert.False(stringConverter.CanConvertTo(typeof(Enum))); Assert.True(stringConverter.CanConvertFrom(" 123 ")); Assert.True(stringConverter.CanConvertFrom("1.0")); Assert.True(stringConverter.CanConvertFrom(" Dog")); Assert.True(stringConverter.CanConvertFrom(" True ")); Assert.True(stringConverter.CanConvertFrom(" abc")); Assert.True(stringConverter.CanConvertFrom("1.2E3")); Assert.True(stringConverter.CanConvertFrom(" 0xFF")); Assert.True(stringConverter.CanConvertFrom("Hello, World!")); Assert.True(stringConverter.CanConvertFrom("The quick brown fox jumps over the lazy dog.")); Assert.Equal("Hello, World!", stringConverter.Convert(typeof(string), "Hello, World!")); Assert.Equal("The quick brown fox jumps over the lazy dog.", stringConverter.Convert(typeof(object), "The quick brown fox jumps over the lazy dog.")); StringBuilder stringBuilder = new StringBuilder("Hello, World!"); Assert.True(stringBuilder.Equals(stringConverter.Convert(typeof(StringBuilder), "Hello, World!") as StringBuilder)); stringBuilder = new StringBuilder("The quick brown fox"); stringBuilder.Append(" jumps over the lazy dog."); Assert.True(stringBuilder.Equals(stringConverter.Convert(typeof(StringBuilder), "The quick brown fox jumps over the lazy dog.") as StringBuilder)); }
public override bool CanConvertFrom(object sourceValue, Type destinationType) { if (sourceValue == null) { return(true); } if (sourceValue.GetType() == typeof(string)) { return(true); } StringConverter sc = new StringConverter(); return(sc.CanConvertFrom(sourceValue.GetType())); }