CAM API
  • CAM API
v20.0.1
Search Results for

    Show / Hide Table of Contents

    Поддержка C# в CAMAPI

    Factory class

    После загрузки managed DLL CAM-система ищет в ней namespace CAMAPI с классом ExtensionFactory. Класс должен реализовывать интерфейс IExtensionFactory. Через объект этого интерфейса CAM-система взаимодействует с загруженной DLL.

    Интерфейс предоставляет метод создания экземпляров расширений, который вызывает CAM-система.

    // ReSharper disable once CheckNamespace
    namespace CAMAPI;
    
    using Extensions;
    using ResultStatus;
    
    /// <summary>
    /// Factory for creating extensions. Namespace and class name always should be CAMAPI.ExtensionFactory,
    /// so CAMAPI will find it
    /// </summary>
    public class ExtensionFactory : IExtensionFactory
    {
        /// <inheritdoc />
        public void OnLibraryRegistered(IExtensionFactoryContext context, out TResultStatus ret)
        {
            ret = default;
        }
    
        /// <inheritdoc />
        public void OnLibraryUnRegistered(IExtensionFactoryContext context, out TResultStatus ret)
        {
            ret = default;
        }
    
        /// <summary>
        /// Create new instance of our extension
        /// </summary>
        /// <param name="extensionIdent">
        /// Unique identifier, if out library has more than one extension. Should accord with
        /// value in settings json, describing this library
        /// </param>
        /// <param name="ret">Error to return it, because throw exception will not work</param>
        /// <returns>Instance of out extension</returns>
        public IExtension? Create(string extensionIdent, out TResultStatus ret)
        {
            try
            {
                // write your code to create new instance
            }
            catch (Exception e)
            {
                ret.Code = TResultStatusCode.rsError;
                ret.Description = e.Message;
            }
            return null;
        }
    }
    
    

    Подключение SDK

    Добавьте ссылку на актуальную версию пакета SDK.

    <PackageReference Include="SprutTechnology.CAMAPI.SDK.Net" Version="18.2.0" />
    
    In this article