¿Como usar en el cliente una propiedad de tipo System.type en una clase que serializo por WCF?

Tengo la siguiente clase definida en un Web Service WCF:

[DataContract] public class cFiltro {     [DataMember]     public string columna { get; set; }     [DataMember]     public Type tipo { get; set; }     [DataMember]     public string valor { get; set; }      public cFiltro()     {      } } 

El problema viene cuando desde un cliente intento crear un objeto de la clase, al asignar un valor a la propiedad “tipo” no me deja, me muestra el siguiente mensaje:

Error 1 No se puede convertir implícitamente el tipo ‘System.Type’ en ‘MINAMESPACE.wsentradas.Type’

El código donde realizo la asignación es el siguiente:

cFiltro filtro = new cFiltro(); filtro.tipo = typeof(Int32); 

Como se puede ver lo que quiero es asignar el tipo Int32 a dicha propiedad, pero no puedo. ¿Alguna idea?

Crear un nuevo atributo desde un método dentro de la clase?

Tengo el siguiente ejercicio:

Continuando con el ejercicio anterior, ahora se requiere implementar el sueldo a pagar a cada profesor, por lo que se debe agregar el atributo correspondiente y un método que permita agregar el valor para dicho atributo. Siguiendo en cosideración que: si tiene más de 10 años de experiencia se le asignará 3000, de 5 a 10 años 2500 y menos de 5 años 2000. Actualizar los métodos para que el sueldo del profesor se muestre junto con sus demás datos.

Class Profesor{ var $  nombre; var $  direccion; var $  experiencia; var $  asignatura; var $  anhos;  public function __construct($  nombre, $  direccion, $  experiencia, $  asignatura, $  anhos){     $  this->nombre = $  nombre;     $  this->direccion = $  direccion;     $  this->experiencia = $  experiencia;     $  this->asignatura = $  asignatura;     $  this->anhos = $  anhos; }  public function get_nombre(){     return $  this->nombre; }  public function set_nombre($  x){     $  this->nombre = $  x; }  public function get_direccion(){     return $  this->direccion; }  public function set_direccion($  x){     $  this->direccion = $  x; }  public function get_experiencia(){     return $  this->experiencia; }  public function set_experiencia($  x){     $  this->experiencia = $  x; }  public function get_asignatura(){     return $  this->asignatura; }  public function set_asignatura($  x){     $  this->asignatura = $  x; }  public function get_anhos(){     return $  this->anhos; }  public function set_anhos($  x){     $  this->anhos = $  x; }  function salario(){     if($  anhos < 5){         $  salario = 2000;     }else if($  anhos > 5 && $  anhos <= 10){         $  salario = 2500;     }else{         $  salario = 3000;     }     return $  salario; }  } 

Bien, en el ejercicio anterior he creado una clase con ciertos atributos. Según este ejercicio debo agregar un nuevo atributo (A lo que he añadido anhos) para conocer cuánto es su salario. Pero lo que me deja a cuadros es la parte final “Actualizar los métodos para que el sueldo del profesor se muestre junto con sus demás datos”. ¿Esto quiere decir que debo crear una función para que reproduzca “salario” como nuevo atributo sin haberlo declarado en el constructor? Y si es así ¿cómo podría hacer eso?

Perdonad pero estoy un poco verde con esto de la POO

Mil gracias

Mantener scope de una clase dentro de la misma clase

Para usar la siguiente función, primero se debe importar AlertController de la libreria:

import { AlertController } from '@ionic/angular'; 

Paso siguiente es inyectarlo en el constructor de un componente cualquiera:

export class myPage implements OnInit {      ...data     constructor(private alertCtrl: AlertController){}     ...data  } 

Acto seguido, tenemos el siguiente metodo de la clase que he creado:

async getAlert(   title, message, cancelText, okText, cancelCallback, okCallback, params ){    const defaultTranslatedOptions = {     cancelText: "Cancelar",     okText: "Rechazar"   };    const alert = await this.alertCtrl.create({     header: title,     message: message,     buttons: [       {         text: cancelText ? cancelText : defaultTranslatedOptions.cancelText,         role: 'cancel',         cssClass: 'secondary',         handler: function(){           cancelCallback(...params[0]);         }       }, {         text: okText ? okText : defaultTranslatedOptions.okText,         handler: function(){           okCallback(...params[1]);         }       }     ]   });    return await alert.present();  } 

Este metodo lo que permite es crear una alerta en pantalla con dos botones de manera dinamica, (segun los datos que se le pasen al metodo), incluyendo datos como el titulo de la alerta, la descripción de la alerta, los nombres que tendran los botones, las funciones que estos ejecutaran al pulsar un boton u otro y los argumentos que se le pasara a cada función.

El problema es que si llamo a este metodo dentro de otro metodo de la MISMA clase y le paso como argumentos 5 y 6, metodos de la misma clase, obtengo en cualquiera de los dos metodos ejecutados por el metodo getAlert() que this es undefined:

requestSendingOptions(){    const roomData = {     room: scrambleStringByCharset(ALLOWED_ROOMID_CHARS, 7) + ";" + Date.now,     name: this.userData.username,     type_user: this.userData.type_user   };    this.getAlert(     '¿Qué deseas hacer?',     '¿Deseas crear un nuevo grupo o añadir los invitados a un grupo existente?',     'Crear nuevo grupo', 'Añadir a grupo existente',     this.createNewRoom,     this.toRoomSelection,     [       ['new-room', roomData],       []     ]   );  } 

Ahora bien… los callbacks que son ejecutados por medio del metodo getAlert, que a su vez este es ejecutado por el metodo requestSendingOptions de la misma clase, es irrelevante realmente ya que asi el metodo tenga o no tenga algo dentro, cuando le meto un console.log() para ver el contenido de this segun la opcion que yo haya elegido en el alert a cada uno de los dos metodos usados, en ambas me dice que this es undefined.

ConnectionString a una clase c#

Intento llenar un combobox desde un Stored Procedure, al intentar conectar desde un ConnectrionString me marcar error

public class CFDI     {         string cnn = ConfigurationManager.ConnectionStrings["produccion"].ConnectionString;         using(SqlConnection conexion = new SqlConnectionStringBuilder(cnn))         {          }        } 

es la misma linea de code que uso en el login

public void logins()         {             string cnn = ConfigurationManager.ConnectionStrings["produccion"].ConnectionString;             using (SqlConnection conexion = new SqlConnection(cnn))             { 

esta es la cadena en el archivo app.config

<connectionStrings>     <add name="prueba" connectionString="Data Source=CHRISTIAN;Initial Catalog=QualitzPalmiss;User ID=sa;Password=Montecristo1" providerName="System.Data.SqlClient"/>     <add name="produccion" connectionString="Data Source=SERVER-04\SQL2008;Initial Catalog=QualitzPalmiss;User ID=sa;Password=PALMISS"/>   </connectionStrings> 

Usar metodos de la clase String en otras clases

Al ejecutar un case dentro de un switch, da un error con la linea declaración del objeto de la clase Viaje, y luego vuelve a aparecer al declarar el constructor dentro de la clase Viaje cuando uso métodos de strings, que puedo hacer para ejecutar los métodos de string en las clases sin los errores. En consola me aparece: java.lang.NullPointerException en ambos caso.

public Viaje(int plaz, String cOrigen, String cDestino, double importe, int num) {             super();             this.plaz = plaz;             this.cOrigen = cOrigen;             this.cDestino = cDestino;             this.cod = cOrigen.substring(0,2);;             this.importe = importe;             this.num =num;         } 

Poner width a ciertos inputs diferente habiendo una clase “input” general aplica para todos

Buen dia, tengo la siguiente clase que se aplica para todos los inputs del DOM

input {   background: #ffffff;   color: #000000;   padding-left:10px;   padding-top:5px;   padding-bottom:5px;   margin-left: 5px;   margin-top: 0px;   margin-bottom: 5px;   border-radius: 4px;   box-sizing: border-box;   transition: .5s ease;   border: 2px solid #000000;   width: 100%;   max-width: 500px;   box-sizing: border-box;   background: #ffffff;   color: #000000; } input:hover {   padding-left: 30px;   background: #ffffff;   -webkit-box-shadow: 0 2px 2px 0 rgba(90,90,90,0.2) inset;   box-shadow: 0 2px 2px 0 rgba(90,90,90,0.2) inset;   border-radius: 4px;   border: 2px solid black; } input:focus {   padding-left: 25px;   /*background: rgba(255,253,232,1);*/ } 

Quisiera ponerle a unos cuantos inputs un ancho de 50px ya que se digitará valores cortos en ellos, que queden como los de la clase solo que no sea tan ancho, intenté ponerle el atributo witdh=”50″ pensando que tendría preferencia pero no lo toma, es como si la clase mencionada tuviera mas prevalencia sobre ese atributo, es posible que a esos cuantos inputs, me tome todo lo de la clase pero con un width de 50px?

Castear clase con distinto numero de atributos en typescript

Tengo 2 clases en angular de las cuales una hereda de la otra. Al querer igualar un objeto de la clase hija con uno de la clase padre, la cual ya se encuentra con los atributos definidos, obtengo un error en el que me dice que no puedo igualar los objetos puesto que se pierden los atributos de la clase hija. Como puedo hacer para igualar los objetos y después definir los atributos restantes?

Ayuda con llamar de una clase a otra

¿Me pueden ayudar como puedo llamar esta clase a un Label?

 public static IPAddress GetDefaultGateway()         {             return NetworkInterface                 .GetAllNetworkInterfaces()                 .Where(n => n.OperationalStatus == OperationalStatus.Up)                 .Where(n => n.NetworkInterfaceType != NetworkInterfaceType.Loopback)                 .SelectMany(n => n.GetIPProperties()?.GatewayAddresses)                 .Select(g => g?.Address)                 .Where(a => a != null)                 // .Where(a => a.AddressFamily == AddressFamily.InterNetwork)                 // .Where(a => Array.FindIndex(a.GetAddressBytes(), b => b != 0) >= 0)                 .FirstOrDefault();         } 

Realize este llamado pero me aparece este error: “No se puede convertir implicitamente el tipo system.Net.IPAddress en string”

private void Form1_Load(object sender, EventArgs e)         {             string hostName = Dns.GetHostName();             string myIP = Dns.GetHostEntry(hostName).AddressList.Where(a => a.IsIPv6LinkLocal == false).FirstOrDefault().ToString();             //string submask = SubnetMask.CreateByHostBitLength(myIP.Length).ToString();             string submask = SubnetMask.GetDefaultGateway();//***Este es el que marca error***//             lblip.Text = myIP;             lblmac.Text = DeviceInfo.GetMacAddress()[0].ToString();             lblmask.Text = submask;         }