次のコードがあります。ここで、T はそのように定義されたジェネリックです。
public abstract class RepositoryBase<T> where T : class, IDataModel
このコードは問題なく動作します:
PropertyInfo propertyInfo = typeof(T).GetProperty(propertyName);
if (propertyInfo.DeclaringType.FullName == typeof(T).FullName) <--- Works just fine
vs false と評価されるこのコード
PropertyInfo propertyInfo = typeof(T).GetProperty(propertyName);
if (propertyInfo.DeclaringType is T) <-- does not work
ここで何が間違っていますか?