如何从用C编写的UWP应用程序调用C#可选包中的代码#

如何从用C编写的UWP应用程序调用C#可选包中的代码#,uwp,msix,Uwp,Msix,现在有可能。但是,如何从C#UWP主应用程序调用可选包中的代码还不清楚,特别是当我们需要以通用方式调用它时 比如说,我在可选包中有一个插件,它们都使用Execute方法和Name属性实现IPlugin接口。我想在菜单中显示所有插件的名称s,并在用户单击插件时调用插件的Execute方法 我们可以迭代主应用程序的所有可选包,比如 //首先获取应用程序包,然后查找所有相关包 var currentAppPackage=Windows.ApplicationModel.Package.Current;

现在有可能。但是,如何从C#UWP主应用程序调用可选包中的代码还不清楚,特别是当我们需要以通用方式调用它时

比如说,我在可选包中有一个插件,它们都使用
Execute
方法和
Name
属性实现
IPlugin
接口。我想在菜单中显示所有插件的
名称
s,并在用户单击插件时调用插件的
Execute
方法

我们可以迭代主应用程序的所有可选包,比如

//首先获取应用程序包,然后查找所有相关包
var currentAppPackage=Windows.ApplicationModel.Package.Current;
//依赖项列表是可确定可选包(OP)列表的位置
var dependencies=currentAppPackage.dependencies;
for(依赖项中的var包)
{
//如果它是可选的,那么将它添加到我们的结果向量中
if(包等可选)
{
WriteLine(“找到可选包-{Package.Id.FullName}”);
}
}
如何调用这些可选包中的代码

如何从用C编写的UWP应用程序调用C#可选包中的代码#

请检查步骤8,我们需要将.winmd文件添加到主项目中。如果我们执行此步骤,就可以直接调用
可选包
api

将主应用程序项目的引用添加到此文件夹中找到的.winmd文件。每次更改可选包项目中的API表面积时,都必须更新此.winmd文件

如何从用C编写的UWP应用程序调用C#可选包中的代码#

请检查步骤8,我们需要将.winmd文件添加到主项目中。如果我们执行此步骤,就可以直接调用
可选包
api


将主应用程序项目的引用添加到此文件夹中找到的.winmd文件。每次更改可选软件包项目中的API表面积时,必须更新此.winmd文件。

如果这样做,我们将不得不使用它编译主应用程序,每次发布新插件时,我们也需要编译主应用程序。这个限制在C++中不存在,页面上的链接示例表明,在C++中,我们可以使用LoadLibrary,并且没有编译时依赖性。YEP,但是对于C++,我们只能使用文档的方式来执行代码,而目前我们还没有这样的方法可以在C++程序中执行C++之类的代码。我们必须用它编译主应用程序,每次我们发布一个新插件时,我们也需要编译主应用程序。这个限制在C++中不存在,页面上的链接示例表明,在C++中,我们可以使用LoadLibrary,并且没有编译时依赖性。YEP,但是对于C++,我们只能使用文档的方式来执行代码,而目前我们还没有这样的方法可以在C++程序中执行C++之类的代码。