2013-10-11 30 views
0

我想用一個字符串的內容的語句,例如:字符串作爲語句的使用內容

string exampleString = "exampleStatement"; 
exampleString.exampleMethod(); 

在我實際的程序使用的是低於

XmlReader reader = XmlReader.Create(url); 
SyndicationFeed feed = SyndicationFeed.Load(reader); 
reader.Close(); 

string field = "PublishDate"; 


foreach (SyndicationItem item in feed.Items) 
{ 
    data = item.field.ToString(); 
} 

return data; 

這是可能的嗎?

+0

http://en.wikipedia.org/wiki/Eval#Security_risks – leftaroundabout

+0

你可以與反思做到這一點,但它過於複雜的代碼,我懷疑你有一個很好的理由這樣做。你爲什麼想這樣做? –

+0

雖然下面的答案是,的確,很好的答案,並會做你想要什麼,我懇求你想想什麼是你正在嘗試做的,爲什麼你需要做到這一點。嘗試[橡膠鴨子調試(http://en.wikipedia.org/wiki/Rubber_duck_debugging) – Icemanind

回答

2

您可以使用反射

item.GetType().GetProperty(field).GetValue(item).ToString(); 

(如果還是GetField(),而不是GetProperty() ......這是一個字段)

1

這是不平凡的像它可能是,比方說,在ECMAScript中。最簡單的方法是反射,例如:

data = item.GetType().GetProperty(field).GetValue(item).ToString(); 

但是:根據所涉及的API,可能還有其他可供選擇,涉及索引,等等。注意,反射比普通成員訪問慢 - 如果你正在做這個在使用率非常高的情況下,您可能需要更優化的實施。儘管如此,它(反射)通常足夠快以適應輕微到中等的使用。