私は実際に Feature オブジェクトの特別なデータ行から値を読み取るメソッドを持っています:
private static T GetRowValueByMethod<T>(Feature feature, string fieldName)
{
return (T) feature.GetDataRow(fieldName)[fieldName];
}
これはほとんどの値で問題なく機能しますGuidが、問題があります。フィールドにSystem.Guidオブジェクトが含まれている場合は、すべて問題ありません。しかし、文字列値が含まれている場合、Guid は文字列から暗黙的にキャストできないため、エラーが発生しました。
文字列からオブジェクトを取得するGuidには、Guid コンストラクターによって新しい Guid オブジェクトを作成する必要があります。ただし、ここではオブジェクトを返すGuidことは許可されていません。新しいTオブジェクトを作成することはできません。オブジェクトを作成しGuidてキャストするTこともできません。じゃあ何をすればいいの?
そのようなことを試しましたが、これは機能しません(注意:偽のコード)
private static T GetRowValueByMethod<T>(Feature feature, string fieldName)
{
var obj = feature.GetDataRow(fieldName)[fieldName];
if (obj.ToString().IsAGuid())
{
return (T) new Guid(obj.ToString());
}
return (T) obj;
}
誰かがこれに対する良い解決策を持っていますか?