1

オブジェクト グラフの作成に使用されるテンプレート エンジンがあるかどうかを知りたいですか? HTML やその他の文字列結果のコンテンツを作成する方法はたくさんあります。しかし、オブジェクトを吐き出すテンプレート エンジンが必要です。いわばプリプロセッサ。

特定のページ ウィジェットをレンダリングするために使用される、ある種の事前定義されたオブジェクト グラフを必要とするアプリケーションがあります。たとえば、ページにツールバーがありますが、すべてのページに異なるツールバーがあります。とても似ているかもしれません。ただし、たとえば、[追加] ボタンは、一方のページと他方のページでは異なる URL を指します。

オブジェクト グラフの例 (一部):

IList<ToolbarItem> toolbar = new List<ToolbarItem> {
    new ToolbarButton {
        Text = PageResources.NewText,
        Url = Url.Action("Add", "Items"),
        Icon = ToolbarIconType.New
    },
    new ToolbarSeparator(),
    new ToolbarDropDown {
        Text = PageResources.DropDownText,
        Icon = ToolbarIconType.Filter,
        Items = new List<ToolbarDropDownItem> {
            new ToolbarDropDownItem {
                Text = PageResources.FirstItem,
                Url = Url.Action("Whatever", "Filter")
            },
            new ToolbarDropDownItem {
                Text = PageResources.SecondItem,
                Url = Url.Action("BlahBlah", "Filter"),
                Icon = ToolbarIconType.Search
            },
            ...
        }
    },
    ...
};

この静的定義 (動的リソースと動的 URL ヘルパー呼び出しを含む) は、非常に長く複雑になる可能性があります。Word に似たリボンのようなツールバーを考えてみてください。非常に複雑で長い。

これらのオブジェクト生成テンプレートをデータベースに保存し、各ページが独自のページを読み取ることができるようにしたいと考えています。次に、テンプレート エンジンがそれを生成し、特定のリソース タイプ + キーを使用してローカライズされたデータを挿入します。同じことがアクションにも当てはまります。 ' URL...

オブジェクトの逆シリアル化 (XML または JSON) でも同様のことが行われます。ただし、組み込みの (逆) シリアル化テクノロジは、変数の置換やリソース リンクなどをサポートしていません。最善の方法は、リソース リンクとラムダ式をサポートすることです。

要約すると、必要なものを提供する.netオブジェクトグラフテンプレートエンジン/プリプロセッサはありますか?

4

2 に答える 2

1

とても興味深い質問です。

XamlReader.Load1 つのオプションは、XAML を生成してから( MSDN を参照) を使用して、XAML によって記述されたオブジェクト ツリー (またはグラフ) を読み込むことだと思います。XAML を使用して、いくつかの基本的な要件に従う任意の .NET オブジェクトを構築できることに注意してください (たとえば、パブリックな get/set プロパティを持ち、コレクションとして使用できる必要がある場合はインターフェイスを実装します)。

また、XAML は XML ドキュメントであるため、XML ファイルを生成できる標準のテキスト テンプレート エンジンを使用して、XAML ドキュメントを生成できるはずです。

于 2010-11-25T21:42:34.853 に答える
0

JSON シリアライゼーション

私が Json.Net ライブラリを使用することに決めたのは、主に JSON 文字列の記述が人間にとって非常に読みやすいという理由からです。むしろ、Web 開発者が読みやすく、保守が容易であると言うべきでしょう。通常の Javascript JSON に非常に似ていますが、追加の構文シュガー (参照保持、型保持など) があります。

Json.NET ライブラリは、提供されているクラスJavaScriptSerializerまたはDataContractSerializerクラスからの非常に優れたアップグレードです。

于 2010-11-29T17:45:02.037 に答える