আপনি আপনার নিজস্ব রাইটলাইন পদ্ধতি লিখতে পারেন-
public static void WriteLine<T>(T obj)
{
var t = typeof(T);
var props = t.GetProperties();
StringBuilder sb = new StringBuilder();
foreach (var item in props)
{
sb.Append($"{item.Name}:{item.GetValue(obj,null)}; ");
}
sb.AppendLine();
Console.WriteLine(sb.ToString());
}
এটি ব্যবহার করুন-
WriteLine(myObject);
সংগ্রহ লিখতে আমরা ব্যবহার করতে পারি-
var ifaces = t.GetInterfaces();
if (ifaces.Any(o => o.Name.StartsWith("ICollection")))
{
dynamic lst = t.GetMethod("GetEnumerator").Invoke(obj, null);
while (lst.MoveNext())
{
WriteLine(lst.Current);
}
}
পদ্ধতিটি দেখতে যেমন হতে পারে-
public static void WriteLine<T>(T obj)
{
var t = typeof(T);
var ifaces = t.GetInterfaces();
if (ifaces.Any(o => o.Name.StartsWith("ICollection")))
{
dynamic lst = t.GetMethod("GetEnumerator").Invoke(obj, null);
while (lst.MoveNext())
{
WriteLine(lst.Current);
}
}
else if (t.GetProperties().Any())
{
var props = t.GetProperties();
StringBuilder sb = new StringBuilder();
foreach (var item in props)
{
sb.Append($"{item.Name}:{item.GetValue(obj, null)}; ");
}
sb.AppendLine();
Console.WriteLine(sb.ToString());
}
}
if, else if
ইন্টারফেস, অ্যাট্রিবিউটস, বেস টাইপ ইত্যাদি ব্যবহার এবং পরীক্ষা করা এবং পুনরাবৃত্তি (যেমন এটি একটি পুনরাবৃত্ত পদ্ধতি) এইভাবে আমরা কোনও অবজেক্ট ডাম্পার অর্জন করতে পারি তবে এটি নিশ্চিতভাবে ক্লান্তিকর। মাইক্রোসফ্টের লিনকিউ নমুনা থেকে অবজেক্ট ডাম্পার ব্যবহার করা আপনার সময় সাশ্রয় করতে পারে।