1

同じUDTを使用する2つのモジュールを持つプロジェクトがあります。サンプル コードに示されている UDT を生成しました。プロジェクトが B.DbObjects 名前空間から UDT を返す必要がある B の SP を呼び出すと、返される型は A.DbObjects 名前空間です。これは、Oracle Data Access が OracleCustomTypeMappingAttribute から型名を取得し、その値でインスタンスを作成するために発生します。名前空間が異なるため、データを戻り値の型にバインドできません。これに対する解決策はありますか?

コード:

モジュール A - 出力 A.dll

namespace A.DbObjects
{
    [OracleCustomTypeMapping("SCHEMA.UDTNAME")]
    public partial class UDTNAME : OracleCustomType
    {
        [OracleObjectMappingAttribute("X")]
        public string X { get; set; }
        [OracleObjectMappingAttribute("Y")]
        public decimal Y { get; set; }
        [OracleObjectMappingAttribute("Z")]
        public decimal Z { get; set; }
    }
}

モジュール B - 出力 B.dll

namespace B.DbObjects
{
    [OracleCustomTypeMapping("SCHEMA.UDTNAME")]
    public partial class UDTNAME : OracleCustomType
    {
        [OracleObjectMappingAttribute("X")]
        public string X { get; set; }
        [OracleObjectMappingAttribute("Y")]
        public decimal Y { get; set; }
        [OracleObjectMappingAttribute("Z")]
        public decimal Z { get; set; }
    }
}
4

0 に答える 0