首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么时候创建fsc的init@变量?

什么时候创建fsc的init@变量?
EN

Stack Overflow用户
提问于 2017-03-10 07:48:24
回答 1查看 75关注 0票数 3

如果我从XML反序列化,我会得到以下错误:The initialization of an object or value resulted in an object or value being accessed recursively before it was fully initialized.

我的F#代码如下所示:

代码语言:javascript
复制
[<...>]
[<...>]
[<DataContract>]
type DerivedClass() as X = class
    inherit BaseClass()
    [<DataMember>]
    [<Input>]
    [<DefaultValue>]
    val mutable MemberName: myType  
    ....

我使用ILSpy查看结果,并获得init@117值,以防止初始化前的访问。

代码语言:javascript
复制
...       
[..., DataContract]
[System.Serializable]
public class DerivedClass : BaseClass
{
[..., DefaultValue, DataMember]
public modulName.myType  MemberName;

internal int init@117;
    ...

我的所有其他类都没有得到init@变量并按预期反序列化。为什么init@有时被创建,有时却不存在?答案可以帮助我修正我的代码。

编辑

@后面的数字代表类型的源代码行。

编辑2

使用as引用类型将为更改的InstanceMembersNeedSafeInitCheck创建可回复的HasSelfReferentialConstructor

代码语言:javascript
复制
...
type DerivedClass() as X = class
...

代码语言:javascript
复制
...
type DerivedClass()  = class
...

帮我解决了这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-10 11:53:38

使用as引用类型将创建更改的HasSelfReferentialConstructorreponsible for theInstanceMembersNeedSafeInitCheck

代码语言:javascript
复制
...
type DerivedClass() as X = class
...

代码语言:javascript
复制
...
type DerivedClass()  = class
...

帮我解决了这个问题。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42713001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档