невозможно установить свойства с помощью Session.CustomActionData - PullRequest
1 голос
/ 04 мая 2011

Невозможно установить значение свойства с помощью Session.CustomActionData.

        if (s.CustomActionData.ContainsKey(PropertyName0))
            s.CustomActionData[PropertyName0] = "1";
        else
            s.CustomActionData.Add(PropertyName0, "1");     

Хотя этот код работает, когда настраиваемое действие заканчивается, свойства остаются неизменными. Так как мне установить значение свойства? Мне нужно установить значение свойства в одном настраиваемом действии и прочитать его в другом.

Ответы [ 3 ]

2 голосов
/ 05 мая 2011

Непонятно, что вы делаете. Только несколько свойств доступны в отложенном настраиваемом действии. Вы пытаетесь передать данные в отложенное пользовательское действие?

Вы можете написать немедленное настраиваемое действие для записи свойств, а затем передать их отложенному настраиваемому действию, если вам это нужно во время выполнения.

Вот пример немедленного CA

[CustomAction]
public static ActionResult ImmediateCA(Session session)
{
   CustomActionData data = new CustomActionData();
   data["property1"] = "abc";
   data["property2"] = "def";
   session["myDeferredCAData"] = data.ToString();
   return ActionResult.Success;
}


[CustomAction]
public static ActionResult myDeferredCA(Session session)
{
   CustomActionData data = session.CustomActionData;
   string property1 = data["property1"];
   return ActionResult.Success;
}

Это решение предложено Ником Рамирезом

1 голос
/ 05 мая 2011

Используете ли вы управляемый код для этого? Я знаю, что у меня были проблемы с получением C ++ CA, чтобы получить свойство и обновить свойство в одном CA. В прошлом я писал в реестр в одном ЦС и читал из него свойство в другом, чтобы обойти эту проблему.

0 голосов
/ 05 мая 2011

Невозможно установить свойство в отложенном настраиваемом действии. http://msdn.microsoft.com/en-us/library/aa370543(v=VS.85).aspx

...