C# 如何避免错误';结构中不能有实例字段初始值设定项问题';在web服务中

C# 如何避免错误';结构中不能有实例字段初始值设定项问题';在web服务中,c#,arrays,web-services,struct,C#,Arrays,Web Services,Struct,而不是做 public struct sFr { public sFe[] errorDetails; public sFr(sFe[] _errorDetails) { // ?? whats code to initialise the array without getting error // as this throws null ref when used later from client calling this webs

而不是做

public struct sFr
{
    public sFe[] errorDetails;

    public sFr(sFe[] _errorDetails)
    {
        // ?? whats code to initialise the array without getting error
        // as this throws null ref when used later from client calling this webservice

        errorDetails = _errorDetails;

        // do we need to create the array of elements which we populate ?
    }
}
(这就是你想要做的),我认为正确的方法是:

sFr instance = new sFr(array_of_details);
如果你想做第一件事,我认为你应该创建一个
,而不是
结构

想想看:当创建在服务器和客户端之间传递结构的web服务时,我认为应该使用无参数构造函数,因为通常的方法是创建一个实例,然后反序列化字段。

而不是这样做

public struct sFr
{
    public sFe[] errorDetails;

    public sFr(sFe[] _errorDetails)
    {
        // ?? whats code to initialise the array without getting error
        // as this throws null ref when used later from client calling this webservice

        errorDetails = _errorDetails;

        // do we need to create the array of elements which we populate ?
    }
}
(这就是你想要做的),我认为正确的方法是:

sFr instance = new sFr(array_of_details);
如果你想做第一件事,我认为你应该创建一个
,而不是
结构


想想看:当创建在服务器和客户端之间传递结构的web服务时,我认为应该使用无参数构造函数,因为通常的方法是创建一个实例,然后反序列化字段;不要让它成为一个结构

对不起,但是那里的结构完全错了

与公共字段一样,通常是数组(首选列表)

和过度缩写的名称(如果需要控制序列化,请使用
[XmlRoot(“sFr”)、XmlType(“sFr”)]
,但要使类型名称有意义)

纠正错误;语法应该是
this.fieldName=value

我要的是:

sFr instance = new sFr();
instance.errorDetails = array_of_details;
公共密封类错误结果
{
私有只读列表错误=新建列表();
公共列表错误{get{return Errors;}}
public ErrorResult(){}//make explicit以便永不丢失
}

非常简单的修复;不要让它成为一个结构

对不起,但是那里的结构完全错了

与公共字段一样,通常是数组(首选列表)

和过度缩写的名称(如果需要控制序列化,请使用
[XmlRoot(“sFr”)、XmlType(“sFr”)]
,但要使类型名称有意义)

纠正错误;语法应该是
this.fieldName=value

我要的是:

sFr instance = new sFr();
instance.errorDetails = array_of_details;
公共密封类错误结果
{
私有只读列表错误=新建列表();
公共列表错误{get{return Errors;}}
public ErrorResult(){}//make explicit以便永不丢失
}

发布代码时,请正确设置格式(使用{}按钮),并检查预览区域中的格式。发布的代码存在一些问题:第二对括号位于错误位置,并且您有两个版本的
sFe
的大小写。通常情况下,初始化只需
errorDetails=\u errorDetails当然,没有字段初始值设定项。。。我不确定这段代码是否真的显示了发布代码时可能重复的问题,请正确设置格式(使用{}按钮),并检查预览区域中的格式。您发布的代码存在一些问题:第二对括号位于错误的位置,并且您有两个版本的
sFe
的大小写。通常情况下,初始化只需
errorDetails=\u errorDetails当然,没有字段初始值设定项。。。我不确定这段代码是否真的显示了问题,可能是重复了@Marc的输入,但是我必须在结构中为errordetails设置数组格式,使它工作起来确实有问题。任何建议都将不胜感激。@Lambo-这是非常模糊的;您想要的输入/输出是什么。。。“以某种方式格式化数组”并不清楚,因为它太模糊了,我们有一个web服务,它返回带有数组的结构-我们希望模拟它,而aboce试图这样做的代码-但是失败了,因为我们无法正确地形成数组。@Lambo web服务返回xml(通常;也可能是一些其他格式),而不是结构。如果问题是获得正确的xml布局,那么请发布一个正确的xml布局示例。通常只需将write属性添加到成员中即可。它真的,真的,真的不必是一个结构。这在这里造成了不必要的问题……对了,再次感谢@Marc,你帮助我朝着正确的方向前进。我会继续削下去的谢谢!感谢@Marc的输入,但是我必须以某种方式格式化数组以获取结构内部的错误详细信息,使其正常工作确实有问题。任何建议都将不胜感激。@Lambo-这是非常模糊的;您想要的输入/输出是什么。。。“以某种方式格式化数组”并不清楚,因为它太模糊了,我们有一个web服务,它返回带有数组的结构-我们希望模拟它,而aboce试图这样做的代码-但是失败了,因为我们无法正确地形成数组。@Lambo web服务返回xml(通常;也可能是一些其他格式),而不是结构。如果问题是获得正确的xml布局,那么请发布一个正确的xml布局示例。通常只需将write属性添加到成员中即可。它真的,真的,真的不必是一个结构。这在这里造成了不必要的问题……对了,再次感谢@Marc,你帮助我朝着正确的方向前进。我会继续削下去的谢谢!