Bonjour à tous,
J’ai utilisé l’IA pour générer un code C# permettant de lire une variable via le protocole BACnet, et ce code fonctionne parfaitement. Voici un extrait :
using System;
using System.Collections.Generic;
using System.IO.BACnet;
class Program
{
static void Main()
{
string deviceIp = "172.16.10.202";
ushort devicePort = 47808;
var transport = new BacnetIpUdpProtocolTransport(0xBAC0, false);
var client = new BacnetClient(transport);
client.Start();
try
{
var address = new BacnetAddress(BacnetAddressTypes.IP, $"{deviceIp}:{devicePort}");
var objectId = new BacnetObjectId(BacnetObjectTypes.OBJECT_ANALOG_VALUE, 1);
if (client.ReadPropertyRequest(address, objectId, BacnetPropertyIds.PROP_PRESENT_VALUE, out IList values))
{
Console.WriteLine("Valeur analogique lue : " + values[0].Value);
}
else
{
Console.WriteLine("Échec de la lecture de la propriété.");
}
}
finally
{
client.Dispose();
}
}
}
Je souhaite maintenant intégrer ce code dans WinDev en utilisant un assemblage .NET basé sur la DLL System.IO.BACnet.
J’ai placé la DLL dans le répertoire exe de mon projet.
Je l’ai importée dans WinDev via l’assistant d’importation d’assemblage .NET.

Le problème et que je ne pas sais comment instancier et utiliser les objets de cet assemblage .NET dans WinDev.
J’ai également vu qu’on pouvait écrire du code C# directement dans WinDev, mais j’obtiens une erreur :
L'initialisation du Framework .NET a échoué. Vérifiez vos paramètres de sécurité .NET. Il n'est généralement pas permis d'utiliser le Framework .NET depuis un chemin réseau.
Les SDK .NET version 4 et version 9 sont bien installés sur ma machine.
Est-ce que quelqu’un pourrait m’aider avec la syntaxe d’appel au .NET depuis WinDev avec comme exemple le code précédent ?
Avez-vous des conseils pour corriger l’erreur liée à l’exécution du Framework .NET ?
Est-il préférable d’utiliser l’assemblage .NET ou d’encapsuler le code C# dans une DLL que j’appellerais depuis WinDev ?
Merci d’avance pour votre aide !
Je continue mes recherches en parallèle.