We are working with Hashtables a lot in a project, where we need to convert objects into hashtable and from hashtables
A way to do this is by adding custom casting in the class to the class type, and to add a method to convert to hashtable.
Example
A way to do this is by adding custom casting in the class to the class type, and to add a method to convert to hashtable.
Example
public class MyClass
{
public string Name;
public int Id;
public string Description;
public static explicit operator MyClass(Hashtable hashtable)
{
MyClass mt = new MyClass();
mt.Description = hashtable["Description"].ToString();
mt.Id = int.Parse(hashtable["Id"].ToString());
mt.Name = hashtable["Name"].ToString();
return mt;
}
public Hashtable ToHashtable()
{
var hashtable = new Hashtable();
hashtable["Name"] = "name";
hashtable["Id"] = 1;
hashtable["Description"] = "description";
return hashtable;
}
}
Then simply we can do something like:
Hashtable hashtable = myClass.ToHashtable();
And
MyClass casted = (MyClass) hashtable;
Example usage:
static void Main(string[] args)
{
MyClass myClass = new MyClass
{
Description = "description",
Id = 1,
Name = "name"
};
Hashtable hashtable = myClass.ToHashtable();
Console.WriteLine("Hashtable: ");
Console.WriteLine(hashtable["Name"]);
Console.WriteLine(hashtable["Id"]);
Console.WriteLine(hashtable["Description"]);
MyClass casted = (MyClass) hashtable;
Console.WriteLine("MyClass: ");
Console.WriteLine(casted.Id);
Console.WriteLine(casted.Description);
Console.WriteLine(casted.Name);
Console.ReadKey();
}
No comments:
Post a Comment