1

此类的一个对象将被传递给 API 调用。我实施了以下警告中的第一个建议:

为了降低安全风险,将字段“Resource.k__BackingField”编组为 Unicode,方法是将“资源”上的 StructLayout.CharSet 设置为 CharSet.Unicode,或者将字段显式编组为 UnmanagedType.LPWStr。如果您需要将此字符串编组为 ANSI 或系统相关,请显式指定 MarshalAs,使用 BestFitMapping 属性关闭最佳拟合映射,并为了增加安全性,打开 ThrowOnUnmappableChar。

现在我的班级看起来与此类似:

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public class Resource
{
    public string Provider;
}

但 FxCop 仍然发出同样的警告。它想要什么?

4

0 回答 0