我認爲創建派生屬性是最好的選擇。
您可以使用xml模式來設計您的新類。然後用xsd.exe生成類代碼。
使用.net並不難開發一個泛型類,它可以序列化和反序列化xml中的所有類型。
public static String toXmlString<T>(T value)
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
StringWriter stringWriter = new StringWriter();
try { xmlSerializer.Serialize(stringWriter, value); }
catch (Exception e)
{
throw(e);
}
finally { stringWriter.Dispose(); }
String xml = stringWriter.ToString();
stringWriter.Dispose();
return xml;
}
public static T fromXmlFile<T>(string fileName, Encoding encoding)
{
Stream stream;
try { stream = File.OpenRead(fileName); }
catch (Exception e)
{
e.Data.Add("File Name", fileName);
e.Data.Add("Type", typeof(T).ToString());
throw(e);
}
BufferedStream bufferedStream = new BufferedStream(stream);
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
TextReader textReader;
if (encoding == null)
textReader = new StreamReader(bufferedStream);
else
textReader = new StreamReader(bufferedStream, encoding);
T value;
try { value = (T)xmlSerializer.Deserialize(textReader); }
catch (Exception e)
{
e.Data.Add("File Name", fileName);
e.Data.Add("Type", typeof(T).ToString());
throw(e);
}
finally
{
textReader.Dispose();
bufferedStream.Dispose();
}
return value;
}
是XML必需?你的兩個缺點都說XML必須被處理。這感覺就像你不想使用XML ... – tuergeist 2009-07-01 09:04:07
是的,這是客戶知道的一個流行語要求。 :) – Groo 2009-07-01 09:11:24
我會選擇「爲每個新設備創建派生的屬性類」... – tuergeist 2009-07-01 09:17:18