Returns a System.String representation of the value object : Casting Conversions « Data Types « C# / C Sharp






Returns a System.String representation of the value object

   


#region License and Copyright
/*
 * Dotnet Commons Reflection
 *
 * This library is free software; you can redistribute it and/or modify it 
 * under the terms of the GNU Lesser General Public License as published by 
 * the Free Software Foundation; either version 2.1 of the License, or 
 * (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful, but 
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 
 * for more details. 
 *
 * You should have received a copy of the GNU Lesser General Public License 
 * along with this library; if not, write to the 
 * Free Software Foundation, Inc., 
 * 59 Temple Place, 
 * Suite 330, 
 * Boston, 
 * MA 02111-1307 
 * USA 
 * 
 */

#endregion

using System;
using System.Collections;
using System.IO;
using System.Reflection;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;

namespace Dotnet.Commons.Reflection
{
  /// -----------------------------------------------------------------------
  /// <summary>  
  /// This utility class contains a rich sets of utility methods that perform operations 
  /// on objects during runtime such as copying of property and field values
  /// between 2 objects, deep cloning of objects, etc.  
  /// </summary>
  /// -----------------------------------------------------------------------
  public abstract class ObjectUtils
  {



    /// ------------------------------------------------------------------------
    /// <summary>
    /// Returns a <see cref="System.String"/> representation of the value object
    /// </summary>
    /// <param name="valueObject"></param>
    /// <returns>string that represents the <see cref="System.Object"/></returns>
    /// ------------------------------------------------------------------------
    public static string ToString(object valueObject) 
    {
      StringBuilder buffy = new StringBuilder();

      buffy.Append("[");
      buffy.Append(valueObject.GetType().FullName);
      buffy.Append("]\n");

      // null objects cannot be reflected
      if(valueObject == null) 
      {
        buffy.Append(" is null.");
        return buffy.ToString();
      }

      foreach(PropertyInfo objProperty in valueObject.GetType().GetProperties())
      {
        string propName;

        propName = objProperty.Name+"=";
        buffy.Append(propName);

        if (objProperty != null) 
        {
          object   propValue = valueObject.GetType().InvokeMember(objProperty.Name,
            BindingFlags.GetProperty,
            null,
            valueObject,
            null);

          if (propValue != null)
            buffy.Append(propValue.ToString()+"\n");
          else
            buffy.Append("<null>\n");
        }
        else                  
          buffy.Append("<null>\n");        
      }

      foreach(FieldInfo objField in valueObject.GetType().GetFields())
      {
        string fieldName;

        fieldName = objField.Name +"=";
        buffy.Append(fieldName);

        if (objField != null) 
        {
          object fieldValue = valueObject.GetType().InvokeMember(objField.Name,
            BindingFlags.GetField,                                    
            null,
            valueObject,
            null);

          buffy.Append(fieldValue.ToString()+"\n");
        }
        else                  
          buffy.Append("<null>\n");
        
      }
      // ----------- End ---------      
      return buffy.ToString();
    }
    // ---------------------------------------------------------------------------



  }
}

   
    
    
  








Related examples in the same category

1.An example that uses an implicit conversion operatorAn example that uses an implicit conversion operator
2.Use an explicit conversionUse an explicit conversion
3.illustrates casting objectsillustrates casting objects
4.The use of the cast operatorThe use of the cast operator
5.Casting int float and byte
6.User-Defined Conversions: How It Works: Conversion Lookup
7.Conversions: Numeric Types
8.Numeric Types: Checked Conversions
9.Conversions:Numeric Types:Checked Conversions
10.Conversions:Numeric Types:Conversions and Member LookupConversions:Numeric Types:Conversions and Member Lookup
11.Conversions:Numeric Types:Explicit Numeric ConversionsConversions:Numeric Types:Explicit Numeric Conversions
12.Conversions of Classes (Reference Types)\To an Interface the Object Might ImplementConversions of Classes (Reference Types)\To an Interface 
 the Object Might Implement
13.Conversions of Classes (Reference Types):To the Base Class of an ObjectConversions of Classes (Reference Types):To the Base Class of an Object
14.User-Defined Conversions:A Simple ExampleUser-Defined Conversions:A Simple Example
15.Classes and Pre and Post Conversions
16.Conversion Lookup
17.InvalidCastException
18.NumberStyles.Integer
19.NumberStyles.None
20.NumberStyles.Integer | NumberStyles.AllowDecimalPoint
21.NumberStyles.Integer | NumberStyles.AllowThousands
22.NumberStyles.Integer | NumberStyles.AllowExponent
23.NumberStyles.HexNumber
24.Converts String to Any Other Type
25.Convert To Int 32
26.Converts a number value into a string that represents the number expressed in whole kilobytes.
27.Converts a numeric value into number expressed as a size value in bytes, kilobytes, megabytes, gigabytes, or terabytes depending on the size.
28.Convert string to char
29.Convert double value to bool and string
30.Converts a base data type to another base data type.