我试图阻止IL链接器在我的.NET WebAssembly中修剪一个方法。因为方法回调()是外部调用的,所以静态分析认为它没有被使用并删除它。我尝试过一些属性,DynamicDependency、DynamicallyAccessedMembers和RequiresUnreferencedCode,但是我有一种感觉,我没有正确地使用它们。
我知道我可以避免使用XML或执行类似if(someAlwaysFalseCondition) { Callback(); }
的操作,但在我的上下文中,这些解决方案并不可行。
如何将属性应用于回调(),以防止IL链接器对其进行裁剪?
public class Program
{
static void Main(string[] args)
{
Console.WriteLine("Loaded.");
}
public static void Callback()
{
Console.WriteLine("Callback");
}
}
发布于 2022-02-25 20:43:04
该属性应用于方法,并指定应包括哪些其他类型、方法或成员。在本例中,它的"Main()":
public class Program
{
[DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(Program))]
static void Main(string[] args)
{
Console.WriteLine("Loaded.");
}
public static void Callback()
{
Console.WriteLine("Callback");
}
}
https://stackoverflow.com/questions/71268097
复制相似问题