Recibo un error de System.MissingMethodException después de tener un parámetro opcional en un componente y el otro componente que lo llama no se compiló como lo llama con un número anterior de parámetros.System.MissingMethodException después de agregar un parámetro opcional
El único componente en el que se agrega el parámetro fue compilar y desplegar como parche. El componente de llamada es antiguo ya que no hay cambios en él.
Cuando el componente llamando plazo que da el error:
Información excepcional
Excepción Tipo: System.MissingMethodException mensaje: método no encontrados: 'LabelURLs IPSD.BnB.Transaction.Postage.GetLabelURLs (System.String) '. Datos: System.Collections.ListDictionaryInternal TargetSite: Vacío GenerateScanForm (Int32, Int32) HelpLink: Fuente NULL: BnBDispenseQueueProcess
Por lo que yo sé que no debería plantear un error como nuevo parámetro es opcional. Un componente de llamada más (EXE) se ejecuta como servicio de Windows.
encontramos una solución muy alámbrica para que funcione. Al eliminar el componente modificado una vez y ejecutar el componente de llamada que dirá DLL no encontrado. El lugar donde está el DLL y el componente de llamada funcionan bien :).
Creo que me faltan algunas partes internas de .net.
Avisarme si necesita más información.
Agregamos el parámetro opcional a una de nuestra biblioteca común. Eso rompió todos los módulos en ejecución (Tenemos suerte, fue en pruebas env). Estas son características de tiempo de desarrollo de .net, parece que tenemos que entenderlas profundamente antes de usarlo. Gracias por preguntar esto. – CreativeManix
@CreativeManix por favor hágamelo saber su hallazgo. como no fue capaz de entender completamente por qué se comportó así. puede ser un truco de compilación que ocurre detrás de la escena – sandeep
@Sanddep como mencionó Jon Skeet, los parámetros opcionales son función de tiempo de compilación. En el tiempo de compilación en el conjunto del llamador, los valores de param opcionales se pasan con los valores predeterminados. por lo tanto, si agregó un parámetro opcional a la biblioteca común, asegúrese de que también está compilando el conjunto de la persona que llama. Si no quiere compilar todo el conjunto de llamadas mejor, no use param opcional, use un método sobrecargado; – CreativeManix