C# не может экспортировать интерфейс, используя jsexport для использования API узлаC#

Место общения программистов C#
Ответить
Anonymous
 C# не может экспортировать интерфейс, используя jsexport для использования API узла

Сообщение Anonymous »

У меня есть библиотека C#. Я пытаюсь написать аддон Nodejs, используя microsoft.javascript.nodeapi. У меня есть следующий интерфейс: < /p>

Код: Выделить всё

using ClassReflectionKit.Models;

namespace ClassReflectionKit.Helpers;

public interface IClassReflectionKitHelper
{
TemplateClassInfo? GetClassInfo(string ns, string className);
//TemplateClassInfo? GetClassInfo(string ns, string className, ProcessClassInfo procDelegate);
string[] GetNameSpaces();
IEnumerable GetNSClasses(string ns);
IEnumerable GetNSClasses(string ns, ProcessNSClasses procDelegate);
IEnumerable GetNSClasses(string ns, ProcessNSClasses procDelegate, ProcessClassInfo procClassDelegate);
void InitializeFromCodeInputs(params string[] codeItems);
void InitializeFromFilePaths(params string[] filePaths);

bool IsCodeSnippetValid(string codeSnippet);
}
< /code>
Что на самом деле делает, чтобы разрешить определение вспомогательных классов, которые могут манипулировать существующим кодом C# и получать информацию о метаданных.[JSExport]
public class ClassReflectionKitHelper : IClassReflectionKitHelper
{
private Dictionary NamespaceSyntaxTrees { get; set; } = new();

private SyntaxTree GetFileSyntaxTree(string filePath)
{
}

public void InitializeFromFilePaths(params string[] filePaths)
{
}

public void InitializeFromCodeInputs(params string[] codeItems)
{
}

public string[] GetNameSpaces()
{
}

public virtual TemplateClassInfo? GetClassInfo(string ns, string className)
{
}

public virtual TemplateClassInfo? GetClassInfo(string ns, string className, ProcessClassInfo procDelegate)
{
}

public virtual IEnumerable GetNSClasses(string ns)
{
}

public virtual IEnumerable GetNSClasses(string ns, ProcessNSClasses procDelegate)
{
}

public virtual IEnumerable GetNSClasses(string ns, ProcessNSClasses procDelegate, ProcessClassInfo procClassDelegate)
{
}

bool IClassReflectionKitHelper.IsCodeSnippetValid(string codeSnippet)
{
}
}

< /code>
(я снял фактическую реализацию для моего класса и оставил только схему) В настоящее время, если я создаю проект, определения типографии для ClassReflectionKithelper сгенерированы. < /P>
ProcessNSClasses
и ProcessClassInfo являются делегатами.

Код: Выделить всё

namespace ClassReflectionKit.Models;
[JSExport("ProcessClassInfo")]
public delegate TemplateClassInfo? ProcessClassInfo(TemplateClassInfo? classInfo);

[JSExport("ProcessNSClasses")]
public delegate IEnumerable ProcessNSClasses(IEnumerable classes);
< /code>
Если я попытаюсь экспортировать интерфейс, также используя атрибут jsexport Я получаю следующую ошибку < /p>
ClassReflectionKit failed with 3 error(s) (0,8s)
Microsoft.JavaScript.NodeApi.Generator.ModuleGenerator\ClassReflectionKit.NodeApi.g.cs(693,80): error CS0103: The name 'from_ClassReflectionKit_Models_ProcessNSClasses' does not exist in the current context
Microsoft.JavaScript.NodeApi.Generator\Microsoft.JavaScript.NodeApi.Generator.ModuleGenerator\ClassReflectionKit.NodeApi.g.cs(706,80): error CS0103: The name 'from_ClassReflectionKit_Models_ProcessNSClasses' does not exist in the current context
error CS0103: The name 'from_ClassReflectionKit_Models_ProcessClassInfo' does not exist in the current context
Есть идеи, что мне не хватает?


Подробнее здесь: https://stackoverflow.com/questions/796 ... -api-usage
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»