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()));
        }