Wpf/winforms C# и ASP.NET с той же библиотекой DLL
I'm doing a program that has to work in Wpf/Winforms c# and in asp.net c# calling a dll that is common to both technologies. When I need the structure of general variables, which also contains the information of each user, a function that exists in the dll returns it by reference so that any change in a variable is available at the moment throughout the program. This now works well. But, in Asp.net i need the same function to return the structure by reference or by value, with the session saved with the variables of each user. If returned by reference like in WPF/Winforms, in Asp.net all users would share the same values. namespace Name_Comun { public struct St_Comun { public int User; public string Name; } public class Cls_Comun { // Structure of general variables public static Name_Comun.St_Comun StComun; public Cls_Comun() { Name_Comun.Cls_Comun.StComun = new Name_Comun.St_Comun(); } } } public void Anyfunction() { // (At present). Retrieves by reference the structure with the general variables. ref Name_Comun.St_Comun StComun = ref Name_Comun.Cls_Comun.Fcn_StComunGet(); // Change a variable. The variable is saved by reference. StComun.User = 100; // Save the changes. (In Wpf/Winforms not save anything because it is a reference). In Aspx save the Session["StComun"]. Name_ComunAdd.Cls_ComunAdd.Fcn_StComunSet (ref StComun); } // Function that returns the structure with the general variables. public static ref Fcn_StComunGet() { // Returns the address of the static variable. ref Name_Comun.St_Comun StComun = ref Name_Comun.Cls_Comun.StComun; // (It is not possible at this time). I NEED to return the Session for ref or value. Like: return ref Session["StComun"] or return Session["StComun"] if (Aplication == Aspx) StComun = ref Session["StComun"]; return StComun; } public static void Fcn_StComunSet(ref Name_Comun.St_Comun StComun) { if (Aplication != Aspx) return; if (Aplication == Aspx) Session["StComun"] = StComun; } What I explain is that a function returns the structure of general variables as ref to be able to modify variables and that the changes in the rest of the program are accessible. But if it is Aspx, taking into account that a Session of the structure must be used for each user, I do not know how to do it for the same function to return it, since that function I use it hundreds of times in all my functions. I NEED: I need that if it is Aspx, the function public static function ref Fcn_StComunGet() returns something similar to return ref Session ["StComun"]. It also helps if you return return Session ["StComun"], but keep in mind that the function returns ref, not value, in case the program is not Aspx. If is not possible return ref Session["Variable"] then I need the function to return Session["Variable"], but this function is also used in WPF/Winforms and is now returning ref. In this way, at the moment that I modify a variable, it is available without saving.
Что я уже пробовал:
What have you tried
What have you tried
What have you tried
F-ES Sitecore
Не уверен, что я на 100% понимаю этот вопрос, но решение, вероятно, состоит в том, чтобы клонировать объект в asp.net чтобы каждый пользователь получил свою собственную копию.
Сеанс["xyz"] = myObject.Клон();
google клонирует объекты в c#, если вы не знаете, как это сделать.
[no name]
Я не об этом говорю. Я объясняю, что функция возвращает структуру общих переменных как ref, чтобы иметь возможность изменять переменные и что изменения в остальной части программы доступны. Но если это Aspx, то с учетом того, что сеанс структуры должен использоваться для каждого пользователя, я не знаю, как это сделать, чтобы одна и та же функция возвращала его, так как эта функция используется мной сотни раз во всех моих функциях.
МНЕ НУЖНО:
Мне нужно, чтобы если это Aspx, то функция public static function ref Fcn_StComunGet() возвращает что-то похожее на return ref Session ["StComun"].
Это также помогает, если вы возвращаете return Session ["StComun"], но имейте в виду, что функция возвращает ref, а не value, если программа не является Aspx.