2011-06-23 12 views
2

私は、その場でxmlを構築するC#のメソッドを持っています。動的データ型をC#でパラメータとして渡す方法は?

ただし、実行時まで特定の要素や属性についてはわかりません。

データ型、名前、値、または金額がわからないときに、パラメータを宣言するにはどうすればよいですか?

+2

あなたがしたいことが分かっているようには聞こえません。いくつかの例を追加できますか? –

+5

[XmlSerializer](http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx)を再開発していますか? –

答えて

2

あなたはparamsというキーワードを探しています。あなたですか? :)

1

すべてのパラメータにSystem.Objectを使用できます。これは他のすべてのタイプの基本クラスであるためです。次に、GetType()メソッドを使用して実際に宣言された型を調べ、その値を適切に扱います。

if (myParam.GetType() == typeof(Int32)) 
{ 
    // treat value as integer ... 
    int val = (int)myParam; 
} 

またはあなたが

if (myParam is Int32) 
{ 
    // treat value as integer ... 
    int val = (int)myParam; 
} 
else if (myParam is String) 
{ 
    string val = myParam.ToString(); 
} 

の構文を使用することができるなど

0

別のオプションジェネリックを使用することです。あなたが渡すことができる種類に制約を置く必要がある場合に役に立ちます。

public void BuildXml<T>(T obj) 
{ 
    // do work 
} 

それとも、オブジェクトのコレクションを期待している場合:

public void BuildXml<T>(IEnumerable<T> items) 
{ 
    // do work 
} 

次に、あなたが取得するためにリフレクションを使用することができます必要な関連データ

関連する問題