internal static void AddXmlComment(Type type, PackageDescriptor.TypeDescriptor descriptor)
        {
            XmlNode xmlCommentNode = GetXmlCommentNode(type, "T:" + type.FullName.Replace("+", "."));

            if ((xmlCommentNode != null) && string.IsNullOrEmpty(descriptor.Description))
            {
                descriptor.Description = GetDescriptionText(xmlCommentNode.SelectSingleNode("summary").InnerXml);
            }
        }
Ejemplo n.º 2
0
 private static List <ModbusDeviceDefinition> LoadModbusDevicesDefinitions()
 {
     if (PackageHost.ContainsSetting("ModbusDeviceDefinitions"))
     {
         // Read the JSON setting
         var modbusDevicesDefintions = PackageHost.GetSettingAsJsonObject <List <ModbusDeviceDefinition> >("ModbusDeviceDefinitions");
         // For each definition
         foreach (ModbusDeviceDefinition definition in modbusDevicesDefintions)
         {
             // Create the StateObject type descriptor
             var soType = new PackageDescriptor.TypeDescriptor
             {
                 TypeName     = definition.Name,
                 TypeFullname = $"Modbus.{definition.Name}",
                 Description  = definition.Description,
                 Properties   = definition.Properties.Select(p => new PackageDescriptor.MemberDescriptor
                 {
                     Name        = p.Name,
                     Description = p.Description,
                     Type        = PackageDescriptor.MemberDescriptor.MemberType.Property,
                     TypeName    = p.GetCLRType().FullName
                 }).ToList()
             };
             // And add it to the Package's descriptor
             PackageHost.WriteInfo($"Registering type {soType.TypeFullname} ...");
             PackageHost.PackageDescriptor.StateObjectTypes.Add(soType);
         }
         // Declare the Package's descriptor on Constellation
         PackageHost.DeclarePackageDescriptor();
         // Return the loaded definitions
         return(modbusDevicesDefintions);
     }
     else
     {
         return(null);
     }
 }