次のコードは、ジェネリック (SortedDictionary) から派生した UDT を実装します。
[Serializable]
[Microsoft.SqlServer.Server.SqlUserDefinedType(Format.UserDefined, MaxByteSize = 8000)]
public class udtMassSpectra : SortedDictionary<float, float>, INullable, IBinarySerialize, ICloneable, IDisposable
{
...
}
型の作成 (T-SQL):
CREATE TYPE dbo.udtMassSpectra EXTERNAL NAME MassSpectra.udtMassSpectra;
例外をスローします:
メッセージ 10331、レベル 16、状態 1、行 1 アセンブリ 'MassSpectra' の型 'udtMassSpectra' は、CLR 型でサポートされていないジェネリック型から派生しています。
理由は何ですか?プライベート メンバー内で基本クラスを非表示にする以外に回避策はありますか? このコードは、SQL Server 2005 で正常に動作します。