1

私は実際に 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;
    }

誰かがこれに対する良い解決策を持っていますか?

4

1 に答える 1