Поддержка 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" />