2014-03-12 46 views
1

我有一個實現CollectionDataContract的類,我想用它來處理各種字典。每個字典都有自己的ItemName和KeyName,是否可以動態設置ItemName和KeyName值?我不想爲每種字典類型創建一個類。動態地在CollectionDataContract中設置ItemName

我想避免這種情況:

[CollectionDataContract(ItemName = "Book", KeyName = "Name")] 
public class BookDictionary<TKey, TValue> : Dictionary<TKey, TValue> 
{ 
    public BookDictionary() : base(){} 
} 

[CollectionDataContract(ItemName = "Product", KeyName = "ID")] 
public class ProductDictionary<TKey, TValue> : Dictionary<TKey, TValue> 
{ 
    public ProductDictionary() : base(){} 
} 

回答

-1

試試這個:

var obj = new ExpandoObject(); 
DataSet ds = GetObjectProperties() // returns dataset having the properties as key and value pair; 
if (ds.Tables["BookTable"].Rows.Count > 0) 
{ 
    foreach (DataRow dr in ds.Tables["BookTable"].Rows) 
    { 
     string KeyName = dr["KeyName"].ToString(); 
     string ValueName= dr["ValueName"].ToString(); 
     obj[KeyName] = ValueName; 
    } 
} 
dynamic DynObj = obj;