防止方法被修剪
Prevent Method from being Trimmed
我试图阻止 IL Linker 修剪我的 .NET WebAssembly 中的方法。因为外部调用了方法Callback(),静态分析认为没有用到就去掉了。我尝试了一些属性,DynamicDependency、DynamicallyAccessedMembers 和 RequiresUnreferencedCode,但我感觉我没有正确使用它们。
我知道我可以使用 XML 配置或通过执行类似 if(someAlwaysFalseCondition) { Callback(); }
的操作来防止修剪,但在我的上下文中这些都不是可行的解决方案。
我应该如何将属性应用于 Callback() 以防止它被 IL 链接器修剪?
public class Program
{
static void Main(string[] args)
{
Console.WriteLine("Loaded.");
}
public static void Callback()
{
Console.WriteLine("Callback");
}
}
该属性应用于方法,并指定应包括哪些其他类型、方法或成员。在这个例子中它的“Main()”:
public class Program
{
[DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(Program))]
static void Main(string[] args)
{
Console.WriteLine("Loaded.");
}
public static void Callback()
{
Console.WriteLine("Callback");
}
}
我试图阻止 IL Linker 修剪我的 .NET WebAssembly 中的方法。因为外部调用了方法Callback(),静态分析认为没有用到就去掉了。我尝试了一些属性,DynamicDependency、DynamicallyAccessedMembers 和 RequiresUnreferencedCode,但我感觉我没有正确使用它们。
我知道我可以使用 XML 配置或通过执行类似 if(someAlwaysFalseCondition) { Callback(); }
的操作来防止修剪,但在我的上下文中这些都不是可行的解决方案。
我应该如何将属性应用于 Callback() 以防止它被 IL 链接器修剪?
public class Program
{
static void Main(string[] args)
{
Console.WriteLine("Loaded.");
}
public static void Callback()
{
Console.WriteLine("Callback");
}
}
该属性应用于方法,并指定应包括哪些其他类型、方法或成员。在这个例子中它的“Main()”:
public class Program
{
[DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(Program))]
static void Main(string[] args)
{
Console.WriteLine("Loaded.");
}
public static void Callback()
{
Console.WriteLine("Callback");
}
}