예제 #1
0
 public override int GetHashCode()
 {
     return(AbsoluteUri?.GetHashCode() ?? 0
            ^ CollectionPropertyName?.GetHashCode() ?? 0
            ^ StartingIndex.GetHashCode()
            ^ Count.GetHashCode());
 }
예제 #2
0
        private async Task <string> BuildXmlAsync()
        {
            var browseActionXml =
                new XDocument(
                    new XDeclaration("1.0", "utf-8", "yes"),
                    new XElement(envelopeNs + "Envelope",
                                 new XAttribute(XNamespace.Xmlns + "s", envelopeNs),
                                 new XElement(envelopeNs + "Body",
                                              new XElement(upnpNs + "Browse",
                                                           new XAttribute(XNamespace.Xmlns + "u", upnpNs),
                                                           new XElement("ObjectID", new XText(ObjectId)),
                                                           new XElement("BrowseFlag", new XText(BrowseFlag.ToString())),
                                                           new XElement("Filter", new XText(Filter.ToString())),
                                                           new XElement("StartingIndex", new XText(StartingIndex.ToString())),
                                                           new XElement("RequestedCount", new XText(RequestedCount.ToString())),
                                                           new XElement("SortCriteria", new XText(""))))));

            using (var memory = new MemoryStream())
            {
                using (var writer = XmlWriter.Create(memory, new XmlWriterSettings()
                {
                    Indent = true, Encoding = Encoding.UTF8
                }))
                {
                    browseActionXml.WriteTo(writer);
                    writer.Flush();
                }

                memory.Flush();
                memory.Seek(0, SeekOrigin.Begin);

                using (var reader = new StreamReader(memory))
                {
                    return(await reader.ReadToEndAsync());
                }
            }
        }