Share.Controller/DeviceAction.cs

(开头部分) 18KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using Share.Communication;
using Share.Model;
using Share.Xml;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Xml;
using System.Xml.Linq;


/**************************************************************************
*   
*   =======================================================================
*   运行版本    : 4.0.30319.42000
*   命名空间    : Share.Controller
*   文件名称    : DeviceAction.cs
*   =======================================================================
*   创 建 者    : Besion
*   创建日期    : 2019/9/11 18:05:48 
*   邮箱地址    : 986905389@qq.com
*   个人主站    : /
*   功能描述    : 建设中...
*   使用说明    : 
*  
***************************************************************************/

namespace Share.Controller
{
    public class DeviceAction
    {
        public event EventHandler<WindowsMediaArgs> WindowsMediaCallBack;

        public void Post(HttpRequestEventArgs e)
        {
            string serviceType = Xml.ConfigManager.Instance.GetDevice().SelectByValue(e.Uri)[0].Parent.Element(Xml.ConfigManager.Instance.GetDevice().SelectByValue(e.Uri)[0].Name.Namespace + "serviceType").Value;
            HttpResponseEventArgs res = new HttpResponseEventArgs();
            res.EXT = "";
            res.Date = DateTime.Now.ToUniversalTime().ToString("r");
            res.Content_Length = "0";
            res.Content_Type = e.Content_Type;
            res.Connection = e.Connection;
            res.Server = "UPnP/1.0 DLNADOC/1.50 Platinum/1.0.4.11";

            XElement action = e.XData.SelectByKey(e.ActionName)[0];
            XName name = action.Name;
            action.Name = name.Namespace + name.LocalName + "Response";
            XNamespace space = name.Namespace;

            var scpd = Xml.ConfigManager.Instance.ParametersDic[serviceType];
            var paramList = scpd.Where(q => q.ActionName == e.ActionName).ToList();

            CommonLibrary.Reflection.Instance.GetMethodReflection(this, e.ActionName, new Type[] { typeof(XElement), typeof(List<ParameterInfo>) })?.Invoke(this, new object[] { action, paramList });

            byte[] data = Encoding.UTF8.GetBytes(e.XData.ToString().Replace("\r\n", ""));
            res.Content_Length = data.Length.ToString();
后面还有 318 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读 AI

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。