1

このxmlを逆シリアル化するアプリケーションがあります:

<SpecialRoutesList>
    <SpecialRoutes>
        <SpecialRoute>
            <Name>TestRoute1</Name>
            <Pattern>TestRouteUrl1</Pattern>
            <Defaults>
                <Controller>Home</Controller>
                <Action>TestRoute1</Action>
                <Params>
                    <Key>id</Key>
                    <Value>1</Value>
                </Params>
            </Defaults>
        </SpecialRoute>
        <SpecialRoute>
            <Name>TestRoute2</Name>
            <Pattern>TestRouteUrl2</Pattern>
            <Defaults>
                <Controller>Home</Controller>
                <Action>TestRoute2</Action>
                <Params>
                    <Key>id</Key>
                    <Value>1</Value>
                </Params>
            </Defaults>
        </SpecialRoute>
    </SpecialRoutes>
</SpecialRoutesList>

この逆シリアル化された情報を使用して、各ルートをマッピングすることに興味があります。

foreach(SpecialRoute route in SpecialRoutesList.SpecialRoutes) {
    routes.MapRoute(route.Name, route.Pattern, new { ?????????? }, ????????);
}

ルートのデフォルトを設定するには、匿名型を使用する必要があります。実行時にデシリアライズされたクラスからキーと値を取得して、これらの匿名型を使用するにはどうすればよいでしょうか?

ありがとう

よろしく

ホセ

4

1 に答える 1

1

routes.MapRoute()デフォルトからRouteValueDictionaryを構築します。したがってDictionary<string,object>、xml からデシリアライズ/ビルドして、.xml に渡すことができroutes.MapRoute()ます。制約パラメーターと同じです。

更新:辞書として構築されたデフォルト

var defaults = new Dictionary<string, object> {{"controller", "Account"}, {"action", "Login"}};

routes.MapRoute(
  "Default", // Route name
  "{controller}/{action}", // URL with parameters
  defaults
);
于 2012-12-21T17:00:56.880 に答える