什么时候创建 fsc 一个 init@ 变量?
When creats fsc an init@ variable?
如果我从 XML 反序列化,我会收到以下错误:The initialization of an object or value resulted in an object or value being accessed recursively before it was fully initialized.
我的 F# 代码如下所示:
[<...>]
[<...>]
[<DataContract>]
type DerivedClass() as X = class
inherit BaseClass()
[<DataMember>]
[<Input>]
[<DefaultValue>]
val mutable MemberName: myType
....
我使用 ILSpy 查看结果并获得了 init@117 值,该值在初始化之前防止访问。
...
[..., DataContract]
[System.Serializable]
public class DerivedClass : BaseClass
{
[..., DefaultValue, DataMember]
public modulName.myType MemberName;
internal int init@117;
...
我的所有其他 类 都没有按预期获得 init@ 变量和反序列化。为什么 init@ 有时创建有时不创建?答案可以帮助我修复我的代码。
编辑
@后面的数字代表该类型的源代码行
编辑 2
用 as
引用类型创建 HasSelfReferentialConstructor
负责 InstanceMembersNeedSafeInitCheck
如此改变
...
type DerivedClass() as X = class
...
到
...
type DerivedClass() = class
...
为我解决了这个问题。
用 as
引用类型创建 HasSelfReferentialConstructorreponsible for theInstanceMembersNeedSafeInitCheck
所以改变
...
type DerivedClass() as X = class
...
到
...
type DerivedClass() = class
...
为我解决了这个问题。
如果我从 XML 反序列化,我会收到以下错误:The initialization of an object or value resulted in an object or value being accessed recursively before it was fully initialized.
我的 F# 代码如下所示:
[<...>]
[<...>]
[<DataContract>]
type DerivedClass() as X = class
inherit BaseClass()
[<DataMember>]
[<Input>]
[<DefaultValue>]
val mutable MemberName: myType
....
我使用 ILSpy 查看结果并获得了 init@117 值,该值在初始化之前防止访问。
...
[..., DataContract]
[System.Serializable]
public class DerivedClass : BaseClass
{
[..., DefaultValue, DataMember]
public modulName.myType MemberName;
internal int init@117;
...
我的所有其他 类 都没有按预期获得 init@ 变量和反序列化。为什么 init@ 有时创建有时不创建?答案可以帮助我修复我的代码。
编辑
@后面的数字代表该类型的源代码行
编辑 2
用 as
引用类型创建 HasSelfReferentialConstructor
负责 InstanceMembersNeedSafeInitCheck
如此改变
...
type DerivedClass() as X = class
...
到
...
type DerivedClass() = class
...
为我解决了这个问题。
用 as
引用类型创建 HasSelfReferentialConstructorreponsible for theInstanceMembersNeedSafeInitCheck
所以改变
...
type DerivedClass() as X = class
...
到
...
type DerivedClass() = class
...
为我解决了这个问题。