internal void WriteMember(NameInfo memberNameInfo, NameInfo typeNameInfo, object value)
{
this.attrList.Clear();
if ((typeNameInfo.NItype != null) && (memberNameInfo.NItransmitTypeOnMember || (memberNameInfo.NItransmitTypeOnObject && !memberNameInfo.NIisArrayItem)))
{
this.attrList.Put("xsi:type", this.TypeNameTagResolver(typeNameInfo, true));
}
string str = null;
if (value != null)
{
if (typeNameInfo.NIprimitiveTypeEnum == InternalPrimitiveTypeE.QName)
{
SoapQName name = (SoapQName)value;
if ((name.Key == null) || (name.Key.Length == 0))
{
this.attrList.Put("xmlns", "");
}
else
{
this.attrList.Put("xmlns:" + name.Key, name.Namespace);
}
str = name.ToString();
}
else if (value is string)
{
str = (string)value;
}
else
{
str = Converter.SoapToString(value, typeNameInfo.NIprimitiveTypeEnum);
}
}
NameInfo info = null;
if (typeNameInfo.NInameSpaceEnum == InternalNameSpaceE.Interop)
{
info = typeNameInfo;
}
string str2 = this.MemberElementName(memberNameInfo, info);
this.NamespaceAttribute();
this.Write(InternalElementTypeE.Member, str2, this.attrList, str, true, Converter.IsEscaped(typeNameInfo.NIprimitiveTypeEnum));
}