同じ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; }
}
}