none
¿Cómo utilizar un archivos Settings.settings de forma indivisual para varios objetos? RRS feed

  • Debate general

  • Hola a todos:

                      Estoy modificando un proyecto que utiliza varios archivos de configuración, donde, en cada uno hay determinadas características configurables que puedo enmarcar dentro de un concepto. Ej. ConfiguracionCamara.settigs, ConfiguracionSensor.Settings, etc.

    My proyecto ya esta funcionando, pero el reto ahora es manejar varios dispositivos físicos, donde cada uno deberá poseer su propia configuración.

    El hecho de manejar varios dispositivos ya esta funcionado, ahora debo hacer que cada uno maneje su configuración propia. Debido a la enorme cantidad de parámetros configurables, no quiero hacer copy-paste del código y crear un archivo ConfigCamara1.settigns y así para cada dispositivo y configuración. Quisiera crear una instancia de estas configuraciones para cada dispositivo y luego poder volverla a abrir al reiniciar el programa.

    Alguna idea?

    Desde ya muchas Gracias y saludos a todos

    Ing. Alejandro Cabral

    lunes, 22 de mayo de 2017 14:24

Todas las respuestas

  • Recuerda que en el Settings puedes poner un objeto de cualquier tipo (que se pueda serializar como XML). Aunque el editor no te lo ofrezca, puedes escribir manualmente el nombre de la clase (completo, con su espacio de nombres). Y la clase puede ser, por ejemplo, un List<MiClase>, siendo MiClase una clase con varias propiedades para guardar la configuración de un dispositivo. Por tanto el List<MiClase> contendría todas las configuraciones de todos los dispositivos. Y lo salvarías de golpe en una única propiedad del Settings.
    lunes, 22 de mayo de 2017 17:39
  • Hola Alberto, muchas gracias por tu respuesta. De todas formas no logro entender bien como aplicar lo que me dice.

    Hasta ahora lo más cercano a lo que llegué es el siguiente código. Sigo teniendo que generar en tiempo de edición tantos settings como equipos valla a conectar. En mi caso eso está acotado. Pero me gustaría más usar un NEW de un seteo general y poder luego poder recuperar para cada equipo su seteo. Y eso no lo estoy logrando.

    Private seteoGeneral As System.Configuration.SettingsBase
    
        Private Sub cargar(ByVal opcion As Integer)
            Try
                If (opcion = 1) Then
                    seteoGeneral = SeteosTextos.Default
                ElseIf (opcion = 2) Then
                    seteoGeneral = SeteosTextos2.Default
                End If
                PropertyGrid2.SelectedObject = seteoGeneral
            Catch ex As Exception
                MessageBox.Show(ex.ToString + "\n" + ex.Message)
            End Try
        End Sub
    
        Private Sub Modificar(ByVal texto As String)
            seteoGeneral.Item("TextoFechaCapturaFrontal") = texto
        End Sub
    
        Private Sub Guardar()
            seteoGeneral.Save()
        End Sub

    miércoles, 24 de mayo de 2017 21:12