我有下面的结构,正在为 COM 互操作进行编译。我收到以下构建警告:
warning :类型库导出器警告处理“MyNamespace.MyStruct.k__BackingField,MyAssemblyName”。警告:公共结构包含一个或多个将被导出的非公共字段。
但我不明白它指的是什么——根本没有非公共字段或字段。也许编译器正在生成一些我看不到的东西?这个警告是什么意思?如果我能做些什么来清理它怎么办?
这是正在构建的(稍微清理过的)代码:
[Guid("....")]
[ComVisible(true)]
public struct MyStruct
{
public string StringA { get; set; }
public string StringB { get; set; }
public MyStruct(string a, string b)
{
StringA = a;
StringB = b;
}
public MyStruct(MyStruct other)
{
StringA = other.StringA;
StringB = other.StringB;
}
public override bool Equals(object obj)
{
if (!(obj is MyStruct)) return false;
var other = (MyStruct)obj;
return
other.StringA == this.StringA &&
other.StringB == this.StringB;
} …Run Code Online (Sandbox Code Playgroud)