Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - WHK

#1731
Me acabo de dar cuenta que dictionary soporta solo dos argumentos y List uno :-/ como puedo tener un array con cuatro argumentos con una llave de tipo string?

Necesito un jSon con la siguiente estructura:

Array(
  estado : 1,
  plantillas: Array(
     Array(id: 10, nombre: "test", datos: Array(
         Array(id: 1, datos: extras),
         Array(id: 2, datos: extras),
         Array(id: 3, datos: extras)
     ))
  )
)


Edito: Estoy intentando hacer listados de estructuras, el problema es... como lo exporto ahora a json? D:

struct datos{
public int id;
public float dato1;
public float dato2;
}

struct plantilla{
public int idPlantilla;
public string nombrePlantilla;
public List<datos> datos;
}

List<plantilla> plantillas = new List<plantilla>();
#1732
Hola, quiero hacer un array multidimensional en c# para procesarlo con JavaScriptSerializer y exportarlo a json, el problema es que visual studio no me reconoce todas las dimensiones y me salta un error en tiempo real:

Código (csharp) [Seleccionar]
List<object> datos = new List<object>();

Dictionary<
Dictionary<string, int>,
Dictionary<string, string>,
Dictionary<string,
List<
Dictionary<string, int>,
Dictionary<string, float>,
Dictionary<string, float>,
Dictionary<string, float>,
Dictionary<string, float>
>
>
> plantillas = new Dictionary<
Dictionary<string, int>,
Dictionary<string, string>,
Dictionary<string,
List<
Dictionary<string, int>,
Dictionary<string, float>,
Dictionary<string, float>,
Dictionary<string, float>,
Dictionary<string, float>
>
>
>();


Tengo importado lo necesario para hacer funcionar List y Dictionary, me toma todo menos el primer dictionary y el primer list, me dice si quiero crear una clase con ese nombre :-/ pero mas abajo en el mismo código llamo un Dictionary solo y me funciona de lo mas bien.

Que será? Uso vs2010
#1733
Y mira lo que me han respondido ahora:

CitarWe have not heard from you concerning your request for support in the 72 hours since we sent you a response. Consequently, we have changed the status of your question to SOLVED.

xDDDD seeeeeeeh está muy resuelto xD
#1734
Es imposible por temas de hardware, ninguna placa base que yo conozca te permite acceder a la bios directamente desde el sistema operativo sobre la marcha ya que la bios forma parte de la configuración del hardware y ningún sistema operativo está diseñado para reconocer cambios en tiempo real a ese nivel.

No es que los creadores de sistemas operativos no hayan querido, esque es un sistema de protección del hardware.

Lo único que si se puede acceder es a cambiar la fecha pero es lo único.

Imaginate si te infectas con un virus y te flashea la bios o te modifica el voltage de la cpu para quemarla, por eso nunca encontrarás la forma de hacerlo desde windows.
#1735
vaya dolor de cabeza x__x en php haces una clase extendida y con eso basta para heredar todo en forma de cascada haciendo includes sin tener que hacer toda esta manga de enredos.

Este sistema que estoy haciendo me hubiera demorado dos semanas en php pero en .net llevo casi dos meses.
#1736
Vamos uno por uno...

He intentado probar lo de El Benjo  usando una función que retorna todo :p

public static object obtenerDatos()
{
return This.Default;
}


Pero me dice que es un tipo que no es válido en ese contexto asi que no me sirve a menos que encierre todas las variables en una estructura y pase solamente esa estructura, en ese caso podría declarar en cada cabecera de cada clase la obtencion de dichas clases pero al ser un contexto distinto no se si se establecerán clonadas en ves de pasarse recursivamente.

En este caso tendría que hacer una función o un argumento especial para cada clase que desee retornar y eso ya es un problema cuando agregue clases nuevas.

Lo de Novlucker parece un poco mejor pero los controles de los módulos son dinámicos por lo cual al control solo lo llamo "Control" y no con el nombre real del control, por lo tanto las propiedades se pierden y no puedo acceder a ellas:

Control modulo = LoadControl(@"C:\...\modulo.ascx");
controlPrincipal.Controls.Add(modulo);


Si dijera Control1 modulo = ... podría ser porque se hereda todo y le puedo establecer un This propio, pero no puedo adivinar si se incluirá Control1 o Control2 ya que los tipos no se pueden establecer de forma dinámica.
#1737
Cita de: El Benjo en 11 Julio 2013, 20:37 PM
Yo diría que compartieras esa información mediante propiedades.

Y como sería eso mr elo? recuerda que esas clases contienen variables y funciones, no puedo compartir todas las variables en una sola clase o propiedad porque son clases distintas.

Como puedo hacer eso que dices?
#1738
Tengo una clase encargada de configurar todo, obtener los datos del web.config, establecer rutas, obtener rutas virtuales, obtener el modulo seleccionado etc etc.

Tengo la clase principal que es el Default.aspx.cs y desde ahi llamo al archivo de configuraciones... ahora, dinamicamente necesito cargar un modulo o sección asi que uso controles de usuario, cada módulo es un control de usuario, ahora desde este control de usuario necesito acceder a la clase de configuraciones para obtener las rutas y esas cosas.

No me sirve declarar la clase de configuraciones en la clase principal, en la clase del theme y en la del módulo porque tendré 3 declaraciones para una misma clase y si el módulo modifica un valor esta no se reflejará en el theme, por eso tube que hacer estática la clase de configuraciones para poder utilizarla desde todos los controles de usuario (theme y modulo) pero el problema es que cuando finaliza de cargar la web esos cambios y datos quedan guardados en la memoria ram del servidor esperando a ser reutilizados nuevamente.

Vamos, esto no es php, es asp compilado, la dll se ejecuta una sola ves y de ahi cada ves que se visita la pagina se llama a la funcion Page_Load pero la ejecución es la misma, no son threads ni forks por lo tanto las variables estaticas permanecen vivas.

Que tal si estoy modificando algo y justo al mismo tiempo entra otra persona y modifica la misma variable? se sobreescribirán y tendria que hacer un bloqueo sincronizado para las visitas y eso sería horrendo porque tendría que restringir a una llamada simultanea máxima cuando en php puedes hacer 500 si quieres al mismo tiempo y las clases y variables no se comparten en memoria a menos que uses sesiones, esto ahorra una inmensidad de memoria ram pero asp no lo hace y arrastra una carga de memoria hasta el infinito cuando tienes muchos sistemas en un mismo servidor, ese es mi problema.
#1739
Hola, estoy desarrollando un sistema en ASP bajo c# con .net 4.5 y tengo un problema:

Necesito acceder de una clase a otra ya que tengo una clase principal y desde ahi hago todas las inclusiones de los controles de usuario hacia un mismo form dinamicamente pero cada uno tiene funcionalidades distintas y no puedo unir todos las funciones de todas las clases en una sola.

Asi que lo que hice fue crear multiples clases con valores y funciones, por ejemplo una de ellas es la encargada de manejar las configuraciones del sistema y para poder utilizarla desde todo el resto de las clases tube que declararla como estática.

El problema es que al ser estática esta persiste y todos los cambios realizados se mantienen cuando otra persona vuelve a visitar la página y es un gran problema. Esto me sucede con varias clases.

Para evitar esto intenté buscar la manera de intercomunicar clases una a otra sin utilizar static pero fue imposible.

Una solución fue crear una estructura al comienzo de la clase principal con todas las demas clases estaticas, entonces cuando se llama al evento Page_Unload seteo todas las variables a null, el problema es que debo hacerla una por una.

Igual estuve buscando información sobre como resetear una estructura, el problema sigue siendo que es static.

Cual sería la manera correcta para solucionar este tipo de problemas? Necesito hacer que exista una comunicación entre controles de usuario y por el momento estoy utilizando un namespace "This.Default" para llamar a todas las demás clases de forma recursiva pero estoy llegando al límite y no encuentro como solucionarlo.

Alguna idea?

Default.aspx.cs
Código (csharp) [Seleccionar]
using librerias.sql;

namespace This
{
    public partial class Default : System.Web.UI.Page
    {
public static cls_sql sql;

protected void Page_Load(object sender, EventArgs e)
{
sql = new cls_sql();

Control modulo = LoadControl(@"C:\...\modulo.ascx");
controlPrincipal.Controls.Add(modulo);
}
}
}


Ahora desde modulo.aspx.cs necesito acceder a sql por lo tanto lo hago así: This.Default.sql pero siendo estático hay ciertos valores que no quiero que se compartan entre otros usuarios y no quiero tener que controlar los permisos de usuario o del visitante cada ves que escribo una linea, por eso por el momento en Page_Unload los seteo todos a null.

Igual se que cuando carga la pagina se establece una nueva instancia del objeto pero quiero evitar que estos datos muertos sigan con vida despues de la ejecucion de la pagina.

Si tengo 500 proyectos corriendo en el mismo servidor no quiero tener 500 espacios de memoria ram ocupados sin que nadie tenga una sola visita, necesito que se eliminen cuando finalicen y no que queden vivos hasta que alguien mas ingrese.

Será error de diseño de ASP.NET? no lo se y lo quiero averiguar.
#1740
Eso debe estar sucediendo porque el archivo al que le estas dando propiedades está en un disco externo, pendrive o red.

Recuerda que cuando descargas un archivo tambien se modifica la fecha de acceso.