質問
いの実現に向けての一助となる以下の
この図は、自動車ユーザーの追加エンジンや色
私はXMLでは以下のようなものです:
<Car>
<Engine>BigEngine</Engine>
<Colour>Pink</Colour>
</Car>
何をしたいと思っているラップ車内部'の車両'ます。e
<Vehicle>
<Car>
<Engine>BigEngine</Engine>
<Colour>Pink</Colour>
</Car>
</Vehicle>
い、最適な方法が分からないことにある。たいモデルについexplorerや、生成されたXMLに包まれに車両がすべてのその他の意図や目的にユーザーは、車のみ
情報:Visual Studio2010、C#、DSLするために使用されています2010
解決 2
私は以下のことで、これを修正しました。私は二重のCarクラスを派生していますし、車のシリアライザに私はこれをやってます:
余分な要素を書きます
public partial class CarSerializer : CarSerializerBase
{
public override void Write(SerializationContext serializationContext, ModelElement element, XmlWriter writer, RootElementSettings rootElementSettings)
{
// Adds the Model and LobSystem root elements to match that required by the SharePoint BCS
writer.WriteStartElement("Garage");
writer.WriteStartElement("Cars");
base.Write(serializationContext, element, writer, rootElementSettings);
writer.WriteEndElement();
writer.WriteEndElement();
}
}
は、私がSerializationHelperで車LoadModelメソッドをオーバーライドしていますし、どこそれは私が車に到達するまで、私は要素を読んでいる読者を得ている。
で、この裏を読むことができるようにするには...
XmlReader reader = XmlReader.Create(fileStream, settings);
reader.MoveToContent();
while (!reader.EOF && !reader.Name.Equals("Car"))
{
reader.Read();
}
reader = reader.ReadSubtree();
// using (global::System.Xml.XmlReader reader = global::System.Xml.XmlReader.Create(fileStream, settings))
using (reader)
{
...
他のヒント
いう二つの異なるアプローチ:
1: オーバーライドDSLパッケージのクラスDocData にDocData.csファイルオーバーライド方法
protected override void OnDocumentSaved(System.EventArgs e)
た後のラッパー
その後、私のオーバーライドでDocData.cs
protected override void OnDocumentLoading(System.EventArgs e)
との呼び出しの前に、前年同月比を加重平均して算 base.OnDocumentLoading(e);
私から削除するファイルです。
2: 下DSL Explorerに行くXMLを直列化挙動および設定車のドメインクラス"は、カスタム=trueになります。
このソリューションではないでもないし複雑化しているようでした。きを定義する必要の一方法が各カスタム法話ができるDSL発生するという手法"DefaulMethod"のデフォルトのDSL双活動しています。
私は現在使用VS2005年、一部のものが変化してい...