Implementar métodos decoradores en C #.
Enpython
es posible implementarfunction decorators
Ampliar el comportamiento de las funciones y métodos.
En particular estoy migrando un dispositivo lib desdepython
aC#
. La comunicación con el dispositivo puede generar errores que deberían volver a actualizarse con una excepción personalizada.
Enpython
Yo escribiría así:
@device_error_wrapper("Device A", "Error while setting output voltage.")
def set_voltage(self, voltage):
"""
Safely set the output voltage of device.
"""
self.__handle.write(":source:voltage:level {0}".format(voltage))
Esta llamada al método se expandiría a
try:
self.__handle.write(":source:voltage:level {0}".format(voltage))
except Error:
raise DeviceError("Error while setting output voltage.", "DeviceA")
Con este patrón puede envolver y extender fácilmente los métodos sin tener que escribir cadatry-except
Cláusula en todos los métodos.
¿Es posible implementar un patrón similar usandoC#
?
Si la implementación del decorador (device_error_wrapper
) es necesario, por favor díganlo.