Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何测试Xml编写器并获得正确的输出?_C#_Xml - Fatal编程技术网

C# 如何测试Xml编写器并获得正确的输出?

C# 如何测试Xml编写器并获得正确的输出?,c#,xml,C#,Xml,我有一个WriteXml方法 public void WriteXml(XmlWriter writer) { if (this.value == null) { writer.WriteValue(this.value?.ToString() ?? string.Empty); return; } var type =

我有一个WriteXml方法

public void WriteXml(XmlWriter writer)
        {
            if (this.value == null)
            {
                writer.WriteValue(this.value?.ToString() ?? string.Empty);
                return;
            }
            var type = this.value.GetType();

            var memInfo = type.GetMember(this.value.ToString());

            if (memInfo.Length > 0)
            {
                var attrs = memInfo[0].GetCustomAttributes<XmlEnumAttribute>();

                if (attrs != null && attrs.IsNotEmpty())
                {
                    writer.WriteValue(attrs);

                    return;
                }
            }
            writer.WriteValue(this.value.ToString());
        }
请帮我解决这个问题。我还尝试将测试方法中的参数(string类型)更改为exposureSValue类型,但仍然相同

我还收到了“过去15天”的错误消息


如何消除该错误消息?

实际问题在于
writer.WriteValue(attrs)

它没有在
attrs
中写入值

我是这样写的,测试用例中没有错误

public void WriteXml(XmlWriter writer)
        {
            if (this.value == null)
            {
                writer.WriteValue(this.value?.ToString() ?? string.Empty);
                return;
            }
            var type = this.value.GetType();
            var memberInfo = type.GetMember(this.value.ToString());

            if (memberInfo.Length > 0)
            {
                var attribute = memberInfo[0].GetCustomAttributes<XmlEnumAttribute>();

                if (attribute != null && attribute.IsNotEmpty())
                {
                    var xmlEnumAttribute = attribute.FirstOrDefault();
                    if (xmlEnumAttribute != null)
                    {
                        writer.WriteValue(xmlEnumAttribute.Name);
                        return;
                    }
                }
            }
            writer.WriteValue(this.value.ToString());
        }
public void WriteXml(XmlWriter)
{
if(this.value==null)
{
writer.WriteValue(this.value?.ToString()?string.Empty);
返回;
}
var type=this.value.GetType();
var memberInfo=type.GetMember(this.value.ToString());
如果(memberInfo.Length>0)
{
var attribute=memberInfo[0]。GetCustomAttributes();
if(attribute!=null&&attribute.IsNotEmpty())
{
var xmlEnumAttribute=attribute.FirstOrDefault();
if(xmlEnumAttribute!=null)
{
WriteValue(xmlEnumAttribute.Name);
返回;
}
}
}
WriteValue(this.value.ToString());
}
谢谢

The following setups were not matched:
XmlWriter x=>x.WriteValue("N/A");
public void WriteXml(XmlWriter writer)
        {
            if (this.value == null)
            {
                writer.WriteValue(this.value?.ToString() ?? string.Empty);
                return;
            }
            var type = this.value.GetType();
            var memberInfo = type.GetMember(this.value.ToString());

            if (memberInfo.Length > 0)
            {
                var attribute = memberInfo[0].GetCustomAttributes<XmlEnumAttribute>();

                if (attribute != null && attribute.IsNotEmpty())
                {
                    var xmlEnumAttribute = attribute.FirstOrDefault();
                    if (xmlEnumAttribute != null)
                    {
                        writer.WriteValue(xmlEnumAttribute.Name);
                        return;
                    }
                }
            }
            writer.WriteValue(this.value.ToString());
        }