Accessing User-Defined Types in ADO.NET
User-defined types (UDTs) are written using any of the languages supported by the Microsoft .NET Framework common language runtime (CLR) that produce verifiable code. This includes Microsoft Visual C# and Microsoft Visual Basic. UDTs allow objects and custom data structures to be stored in a SQL Server database. The data is exposed as public members of a .NET Framework class or structure, and behaviors are defined by methods of the class or structure. A UDT can be used as the column definition of a table, as a variable in a Transact-SQL batch, or as an argument of a Transact-SQL function or stored procedure.
In ADO.NET, the System.Data.SqlClient provider exposes UDTs in the following ways:
Through the System.Data.SqlClient.SqlDataReader as an object.
Through the SqlDataReader as raw bytes.
As a parameter of a System.Data.SqlClient.SqlParameter object.