お世話になります。
System.Reflection.PropertyInfo.GetValueで取得したobjectがその型のデフォルト値であるか知りたく質問させていただきました。以下に例を記載します。

var returnType = property.GetMethod.ReturnType;
var value = property.GetValue (entity);
// valueが「0」でreturnTypeがInt32であれば、 value == default (int)なのでtrueを返したい
// valueが「null」でStringであれば、 value == default (string)なのでtrueを返したい

今までは一個一個判定していたのでもっとスマートなやり方を知りたいです。

(returnType == typeof (int) && (int) value == default (int)) ||
(returnType == typeof (string) && (string) value == default (string))
...
(returnType == typeof (byte[]) && (byte[]) value == default (byte[]))

よろしくお願いします。