This class represents a specialization of data table used to hold the data from the enums.
Namespace:
CA.Common.AttributesAssembly: CA.Common (in CA.Common.dll) Version: 1.0.0.0 (1.0.0.0)
Remarks
The three columns in the datatable are:
CopyC#
- "ID" as int
- "EnumCodeValue" as string
- "EnumStringValue" as string
source code:
//Source code from the Code Associate C# code library, Full documentation and latest updates can be found //@ http://www.codeassociate.com/caapi/ using System; using System.Data; namespace CA.Common.Attributes { public class StringEnumDataTable : DataTable { public StringEnumDataTable() { Columns.Add("ID", typeof(int)); Columns.Add("EnumCodeValue", typeof(string)); Columns.Add("EnumStringValue", typeof(string)); AcceptChanges(); } public void AddRowFromContainer(StringEnumContainer container) { object[] datarow = new object[3]; datarow[0] = container.EnumIntvalue; datarow[1] = container.EnumCodevalue.ToString(); datarow[2] = container.EnumStringvalue; LoadDataRow(datarow, true); } public new void WriteXmlSchema(System.IO.Stream s) { // This simply provides a documentation hook point for the WriteXmlSchema method base.WriteXmlSchema(s); } public new void ReadXmlSchema(System.IO.Stream s) { // This simply provides a documentation hook point for the ReadXmlSchema method base.ReadXmlSchema(s); } } }
Examples
Given:
public enum TestEnumValues { [StringValue("A non valid .NET name")] NonValidDotNetName = 1, EnumValueWithNoStringValue = 2, EnumValueWithNoNumber }
The Code Below
[Test] public void CheckStringToEnumAsDataTable() { DataTable dt = StringEnum.GetEnumValuesAsDataTable(typeof(TestEnumValues)); foreach (DataRow dr in dt.Rows) { Trace.WriteLine(string.Format("ID={0}", dr["ID"])); Trace.WriteLine(string.Format("EnumCodeValue={0}", dr["EnumCodeValue"])); Trace.WriteLine(string.Format("EnumStringValue={0}", dr["EnumStringValue"])); } }
Will Produce
ID=1
EnumCodeValue=NonValidDotNetName
EnumStringValue=A non valid .NET name
ID=2
EnumCodeValue=EnumValueWithNoStringValue
EnumStringValue=
ID=3
EnumCodeValue=EnumValueWithNoNumber
EnumStringValue=
Inheritance Hierarchy
System..::.Object
System.ComponentModel..::.MarshalByValueComponent
System.Data..::.DataTable
CA.Common.Attributes..::.StringEnumDataTable
System.ComponentModel..::.MarshalByValueComponent
System.Data..::.DataTable
CA.Common.Attributes..::.StringEnumDataTable