LIBRERIAS EN C#

Al final de la entrada anterior comenté la posibilidad de importar el ensamblaje creado - test.dll - directamente desde la barra de menú. Ello permite utilizar en Dynamo librerías creadas previamente en otros lenguajes .NET sin necesidad de vincularlas a un nodo de Python tal y como explicábamos en dicha entrada. De esta forma el proceso de integración se facilita enormemente.

Para importar una librería directamente desde el menú debemos acceder a Archivo >> Importar biblioteca. 


Con ello, aparece en la barra de la barra de la izquierda un nuevo elemento tal y como se muestra en la figura siguiente.


Este elemento representa el ensamblaje creado donde:

  • El primer nombre 'Test' representa el nombre del ensamblaje creado (podéis cambiar el nombre y veréis como cambia este también).
  • El segundo nombre 'Test' representa el espacio de nombres - namespace en el archivo C#
  • Operaciones es el nombre de la clase creada
  • El segundo nombre de Operaciones (tras el signo +) representa el constructor (por defecto) de la clase. Este no aparece en el archivo C# porque no se ha definido. 
  • Por último, Suma es el nombre del método que hemos definido para la clase Operaciones.


Como ejemplo de uso de nuestro nodo podemos crear el siguiente grafo.


En este caso, el nodo Operaciones.Suma tiene dos inputs. El primero suministrado por el nodo Code Block es el parámetro de entrada del método Suma creado es decir, una lista de números (float). El segundo es una instancia de la clase que contiene al método. Esto es así porque la clase que hemos definido - en test.dll - no es estática y por tanto debe crearse una instancia cada vez que se quiera utilizar.

Para evitar ésto - que no es un problema - debemos hacer nuestra clase estática y para ello hacemos los siguientes cambios en el archivo en C#

public static class Operaciones

{

    public static float Suma (List<float> X)

    ...


De esta forma el nodo se modifica de la siguiente forma donde ya no es necesario crear una instancia de la clase Operaciones.



Existe otra forma de hacer ésto. En este caso, si bien la clase ya no es estática, si lo serán los métodos creados. Además, debemos crear un constructor de clase con el atributo private (privado) que sustituya al constructor por defecto que es público.

public class Operaciones

{

    private Operaciones()

    public static float Suma (List<float> X)

    ...

----- ooOoo -----

Con estas tres últimas entregas hemos visto como podemos aplicar las posibilidades de Dynamo mediante el nodo Python Script que permite la programación de código en Python así como, integrar librerías escritas en cualquiera de los lenguajes .NET bien a través del nodo anterior o importada directamente desde la barra de menú.


Comentarios

Entradas populares