电气前端提交
This commit is contained in:
parent
d03629aab0
commit
e932112a96
File diff suppressed because one or more lines are too long
268
newFront/c#前端/SWS.Commons/GlobalObject.cs
Normal file
268
newFront/c#前端/SWS.Commons/GlobalObject.cs
Normal file
@ -0,0 +1,268 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Net.Http;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using IniParser;
|
||||||
|
using Prism.DryIoc;
|
||||||
|
using Prism.Ioc;
|
||||||
|
using SWS.Model;
|
||||||
|
using Unity;
|
||||||
|
|
||||||
|
namespace SWS.Commons
|
||||||
|
{
|
||||||
|
public class GlobalObject
|
||||||
|
{
|
||||||
|
public static string templateForDrawing = "普通图框";
|
||||||
|
public static string editorPre = "DI_Electrical ";
|
||||||
|
public static string TemplateFile_Template = "普通图框";
|
||||||
|
public static string configPath = Environment.ExpandEnvironmentVariables(@"%USERPROFILE%\AppData\Roaming\BricsCAD Electrical\Config\AppConfig.ini");
|
||||||
|
|
||||||
|
#region DataItemDetail列表转换成树形结果
|
||||||
|
/// <summary>
|
||||||
|
/// DataItemDetail列表转换成树形结果
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="listData">列表数据</param>
|
||||||
|
/// <param name="isChildres">是否子节点遍历添加</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static ObservableCollection<TreeModel> DataItemDetailsToTree(List<ec_dataitemdetail> listData, bool isChildres = false)
|
||||||
|
{
|
||||||
|
ObservableCollection<TreeModel> result = new ObservableCollection<TreeModel>();
|
||||||
|
List<ec_dataitemdetail> list = new List<ec_dataitemdetail>();
|
||||||
|
if (isChildres)
|
||||||
|
{ list = listData; }
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//取所有第一级树
|
||||||
|
list = listData.Where(a => a.UpDataItemDetailID == "0").ToList();
|
||||||
|
}
|
||||||
|
foreach (var data in list)
|
||||||
|
{
|
||||||
|
//获取当前节点的所有子节点
|
||||||
|
var details = listData.Where(a => a.UpDataItemDetailID == data.DataItemDetailID).ToList();
|
||||||
|
if (details.Any())
|
||||||
|
{
|
||||||
|
//获取子节点
|
||||||
|
var childrens = DataItemDetailsToTree(details, true);
|
||||||
|
result.Add(new TreeModel
|
||||||
|
{
|
||||||
|
ID = data.DataItemDetailID,
|
||||||
|
Text = data.DataItemName,
|
||||||
|
ChildNodes = childrens
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//没有子节点就添加当前节点Node
|
||||||
|
result.Add(new TreeModel
|
||||||
|
{
|
||||||
|
ID = data.DataItemDetailID,
|
||||||
|
Text = data.DataItemName,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 对象类型树
|
||||||
|
/// <summary>
|
||||||
|
/// 对象类型树
|
||||||
|
/// </summary>
|
||||||
|
public static List<TreeModel> objectTypeTree = new List<TreeModel>();
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 设计浏览树
|
||||||
|
/// <summary>
|
||||||
|
/// 设计浏览树
|
||||||
|
/// </summary>
|
||||||
|
public static List<TreeModel> designTree = new List<TreeModel>();
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
public enum dialogPar
|
||||||
|
{
|
||||||
|
id,
|
||||||
|
textYes,
|
||||||
|
textNo,
|
||||||
|
title,
|
||||||
|
OK,
|
||||||
|
unitTypeId,
|
||||||
|
info,
|
||||||
|
unit,
|
||||||
|
para1,
|
||||||
|
para2
|
||||||
|
}
|
||||||
|
public static IContainerRegistry containerRegistry ;
|
||||||
|
public static IUnityContainer container;
|
||||||
|
public static IContainerExtension _prismContainer ;
|
||||||
|
public static HttpClient client;
|
||||||
|
public static loginRes userInfo;
|
||||||
|
public static List<User> Users;
|
||||||
|
|
||||||
|
public static bool isConfigIniCreateBySys = true;
|
||||||
|
//public static string drawingFileId;
|
||||||
|
public static ec_project curProject;
|
||||||
|
public static DateTime preClickTime = DateTime.Now;
|
||||||
|
public static Unit UnitSelected;
|
||||||
|
public static List<ec_measuring_unit> Units;
|
||||||
|
/// <summary>
|
||||||
|
/// 打开的图纸名列表
|
||||||
|
/// </summary>
|
||||||
|
public static List<DrawingOpened> ListDwgOpened = new List<DrawingOpened>();
|
||||||
|
/// <summary>
|
||||||
|
/// 图纸树上的所有图纸名
|
||||||
|
/// </summary>
|
||||||
|
public static List<string> AllDwgName = new List<string>();
|
||||||
|
public static string currentTagNumber;
|
||||||
|
#region 本地文件目录
|
||||||
|
static string _LocalFileDirectory;
|
||||||
|
/// <summary>
|
||||||
|
/// 获取本地目录文件夹
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static string GetLocalFileDirectory()
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(_LocalFileDirectory))
|
||||||
|
{
|
||||||
|
string path = Environment.ExpandEnvironmentVariables(@"%USERPROFILE%\AppData\Roaming\SWS\Config.ini");
|
||||||
|
FileIniDataParser parser = new FileIniDataParser();
|
||||||
|
var data = parser.ReadFile(path);
|
||||||
|
_LocalFileDirectory = data["Profile"]["Directory"];
|
||||||
|
return _LocalFileDirectory;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{ return _LocalFileDirectory; }
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 设置本地目录文件夹
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="dir">文件夹目录</param>
|
||||||
|
public static void SetLocalFileDirectory(string dir)
|
||||||
|
{ _LocalFileDirectory = dir; }
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 图纸文件所在文件夹
|
||||||
|
/// <summary>
|
||||||
|
/// 图纸文件所在文件夹
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static string GetDwgFileFolder()
|
||||||
|
{
|
||||||
|
string path = Path.Combine(GetLocalFileDirectory(), curProject.ProjectIndex.ToString());
|
||||||
|
if (!Directory.Exists(path))
|
||||||
|
Directory.CreateDirectory(path);
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 图纸文件备份文件夹
|
||||||
|
/// <summary>
|
||||||
|
/// 图纸文件备份文件夹
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static string GetBackupDwgFileFolder()
|
||||||
|
{
|
||||||
|
string path = Path.Combine(GetDwgFileFolder(), "Backup");
|
||||||
|
if (!Directory.Exists(path))
|
||||||
|
Directory.CreateDirectory(path);
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 根据ID获取用户名称
|
||||||
|
/// <summary>
|
||||||
|
/// 根据ID获取用户名称
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static string GetUserNameById(string id)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(id))
|
||||||
|
{ return ""; }
|
||||||
|
var user = Users.FirstOrDefault(a => a.F_UserId == id || a.F_Account == id);
|
||||||
|
if (user != null)
|
||||||
|
{ return user.F_RealName; }
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
//user = GlobalObject.Users.FirstOrDefault(a => a.F_Account == id);
|
||||||
|
//return user != null ? user.F_RealName : "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 判断是否是电缆
|
||||||
|
/// <summary>
|
||||||
|
/// 判断是否是电缆
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static bool IsCable(ec_objecttype obj)
|
||||||
|
{
|
||||||
|
if (obj == null) { return false; }
|
||||||
|
var flag = obj.ObjectTypeName.EndsWith("电缆");
|
||||||
|
return flag;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 取字符串最后的一个或多个数字
|
||||||
|
/// <summary>
|
||||||
|
/// 取字符串最后的一个或多个数字
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="input">输入字符串</param>
|
||||||
|
/// <param name="preInput">数字前的字符串</param>
|
||||||
|
/// <param name="num">最后的数字</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static bool GetLastNumber(string input, ref string preInput, ref int num)
|
||||||
|
{
|
||||||
|
string pattern = @"(\d+)$"; // 正则表达式,匹配字符串末尾的一个或多个数字
|
||||||
|
Match match = Regex.Match(input, pattern);
|
||||||
|
if (match.Success)
|
||||||
|
{
|
||||||
|
preInput = input.Substring(0, input.Length - match.Value.Length);
|
||||||
|
num = int.Parse(match.Value);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="resName">包括命名空间</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static System.Windows.Media.ImageSource ImageSourceFromEmbeddedResourceStream(string resName)
|
||||||
|
{
|
||||||
|
string imgPath = $"SWS.Commons.Images.{resName}";
|
||||||
|
System.Reflection.Assembly assy = System.Reflection.Assembly.GetExecutingAssembly();
|
||||||
|
//foreach (string resource in assy.GetManifestResourceNames())
|
||||||
|
//{
|
||||||
|
// Console.WriteLine(resource);//遍历所有的内嵌资源
|
||||||
|
//}
|
||||||
|
System.IO.Stream stream = assy.GetManifestResourceStream(imgPath);
|
||||||
|
if (stream == null)
|
||||||
|
return null;
|
||||||
|
System.Windows.Media.Imaging.BitmapImage img = new System.Windows.Media.Imaging.BitmapImage();
|
||||||
|
img.BeginInit();
|
||||||
|
img.StreamSource = stream;
|
||||||
|
img.EndInit();
|
||||||
|
return img;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetPCInfo()
|
||||||
|
{
|
||||||
|
string computerName = Environment.MachineName; // 获取计算机名称
|
||||||
|
string userName = Environment.UserName; // 获取当前用户名称
|
||||||
|
|
||||||
|
return $"{computerName} 计算机{userName} 用户";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Windows.Data;
|
||||||
|
using SWS.Model;
|
||||||
|
|
||||||
|
namespace SWS.Commons.Helper.Converter
|
||||||
|
{
|
||||||
|
public class CollectionToStringConverter : IValueConverter
|
||||||
|
{
|
||||||
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
ObservableCollection<ec_dataitemdetail> WHCPUs = value as ObservableCollection<ec_dataitemdetail>;
|
||||||
|
if (WHCPUs != null)
|
||||||
|
{
|
||||||
|
string sWHCPU = "";
|
||||||
|
for (int i = 0; i < WHCPUs.Count; i++)
|
||||||
|
{
|
||||||
|
if (i!= WHCPUs.Count-1)
|
||||||
|
{
|
||||||
|
if (WHCPUs[i] != null)
|
||||||
|
{
|
||||||
|
sWHCPU = sWHCPU + WHCPUs[i].DataItemCode + "|";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (WHCPUs[i] != null)
|
||||||
|
{
|
||||||
|
sWHCPU = sWHCPU + WHCPUs[i].DataItemCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sWHCPU;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,55 @@
|
|||||||
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Windows.Data;
|
||||||
|
using SWS.Model;
|
||||||
|
|
||||||
|
namespace SWS.Commons.Helper.Converter
|
||||||
|
{
|
||||||
|
public class RadGridViewRowToBoolConverter : IValueConverter
|
||||||
|
{
|
||||||
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
SignalManagementInfo smif = value as SignalManagementInfo;
|
||||||
|
if (smif != null)
|
||||||
|
{
|
||||||
|
if (smif.Status.Equals("deleted") || smif.Status.Equals("Confirmed"))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (smif.type.Equals("信号"))
|
||||||
|
{
|
||||||
|
switch (parameter.ToString())
|
||||||
|
{
|
||||||
|
case "关联的电缆信息":
|
||||||
|
case "关联的通道信息":
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
switch (parameter.ToString())
|
||||||
|
{
|
||||||
|
case "组别":
|
||||||
|
case "编码":
|
||||||
|
case "信号类型":
|
||||||
|
case "Min":
|
||||||
|
case "Max":
|
||||||
|
case "单位":
|
||||||
|
case "CODE":
|
||||||
|
case "设备名":
|
||||||
|
case "关联的电缆信息":
|
||||||
|
case "关联的通道信息":
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Windows.Data;
|
||||||
|
using SWS.Model;
|
||||||
|
|
||||||
|
namespace SWS.Commons.Helper.Converter
|
||||||
|
{
|
||||||
|
public class StatusToColourConverter : IValueConverter
|
||||||
|
{
|
||||||
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
SignalManagementInfo smif = value as SignalManagementInfo;
|
||||||
|
if (smif != null)
|
||||||
|
{
|
||||||
|
return smif.Status;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
118
newFront/c#前端/SWS.Commons/Helper/FileHelper.cs
Normal file
118
newFront/c#前端/SWS.Commons/Helper/FileHelper.cs
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Security.Cryptography;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace SWS.Commons
|
||||||
|
{
|
||||||
|
public static class FileHelper
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// dwg等文件名是否合法。不带后缀
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="fileName"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static bool IsValidFileName(string fileName)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(fileName))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取 Windows 文件系统中不允许出现在文件名中的字符数组
|
||||||
|
char[] invalidChars = Path.GetInvalidFileNameChars();
|
||||||
|
|
||||||
|
// 检查文件名中是否包含非法字符
|
||||||
|
foreach (char c in invalidChars)
|
||||||
|
{
|
||||||
|
if (fileName.IndexOf(c) >= 0)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查是否为保留文件名
|
||||||
|
string[] reservedNames = { "CON", "PRN", "AUX", "NUL", "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", "LPT9" };
|
||||||
|
string trimmedFileName = Path.GetFileNameWithoutExtension(fileName).Trim().ToUpper();
|
||||||
|
foreach (string reservedName in reservedNames)
|
||||||
|
{
|
||||||
|
if (trimmedFileName == reservedName)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查文件名是否以空格或句点结尾
|
||||||
|
if (fileName.TrimEnd().Length != fileName.Length || fileName.TrimEnd('.').Length != fileName.Length)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static string GetFileMD5(string filePath)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(filePath) || !File.Exists(filePath))
|
||||||
|
{
|
||||||
|
throw new ArgumentException("文件路径无效或文件不存在", nameof(filePath));
|
||||||
|
}
|
||||||
|
|
||||||
|
using (var md5 = MD5.Create()) // 创建 MD5 哈希算法实例
|
||||||
|
using (var stream = File.OpenRead(filePath)) // 打开文件流
|
||||||
|
{
|
||||||
|
// 计算文件的 MD5 值
|
||||||
|
byte[] hashBytes = md5.ComputeHash(stream);
|
||||||
|
|
||||||
|
// 将字节数组转换为十六进制字符串
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
foreach (var b in hashBytes)
|
||||||
|
{
|
||||||
|
sb.Append(b.ToString("x2")); // x2 格式化为两位小写十六进制数
|
||||||
|
}
|
||||||
|
|
||||||
|
return sb.ToString(); // 返回 MD5 值的字符串
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#region 检查文件是否被其他进程占用
|
||||||
|
/// <summary>
|
||||||
|
/// 检查文件是否被其他进程占用
|
||||||
|
/// </summary>
|
||||||
|
public static bool IsFileLocked(string filePath)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// 尝试以独占模式打开文件
|
||||||
|
using (FileStream fs = File.Open(
|
||||||
|
filePath,
|
||||||
|
FileMode.Open,
|
||||||
|
FileAccess.ReadWrite,
|
||||||
|
FileShare.None)) // FileShare.None 表示禁止共享
|
||||||
|
{
|
||||||
|
return false; // 成功打开则未被占用
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (IOException ex)
|
||||||
|
{
|
||||||
|
// 检查特定错误码
|
||||||
|
int errorCode = Marshal.GetHRForException(ex) & 0xFFFF;
|
||||||
|
return errorCode == 32 || errorCode == 33; // 32: 共享冲突, 33: 进程锁定
|
||||||
|
}
|
||||||
|
catch (UnauthorizedAccessException)
|
||||||
|
{
|
||||||
|
return true; // 无权限访问(可能被占用)
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return false; // 其他异常视为未被占用
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
144
newFront/c#前端/SWS.Commons/Helper/LoggerHelper.cs
Normal file
144
newFront/c#前端/SWS.Commons/Helper/LoggerHelper.cs
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
namespace SWS.Commons
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// nLog使用帮助类
|
||||||
|
/// </summary>
|
||||||
|
public class LoggerHelper
|
||||||
|
{
|
||||||
|
private static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
|
||||||
|
private static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");
|
||||||
|
private static readonly log4net.ILog logdebug = log4net.LogManager.GetLogger("logdebug");
|
||||||
|
private static readonly log4net.ILog logwarn = log4net.LogManager.GetLogger("logwarn");
|
||||||
|
private static readonly log4net.ILog logfatal = log4net.LogManager.GetLogger("logfatal");
|
||||||
|
|
||||||
|
private static LoggerHelper _obj = null;
|
||||||
|
private static string logPath = string.Empty;
|
||||||
|
private LoggerHelper()
|
||||||
|
{
|
||||||
|
string codeBase = Assembly.GetExecutingAssembly().CodeBase;
|
||||||
|
string dllPath = codeBase.Replace("file:///", "");
|
||||||
|
dllPath = Path.GetDirectoryName(dllPath);
|
||||||
|
logPath = Path.Combine(dllPath, "Logs\\");
|
||||||
|
var configFile = new FileInfo(Path.Combine(dllPath, "log4net.config"));
|
||||||
|
log4net.Config.XmlConfigurator.ConfigureAndWatch(configFile);
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 获取当前的日志记录<see cref="LoggerHelper"/>对象。
|
||||||
|
/// </summary>
|
||||||
|
public static LoggerHelper Current
|
||||||
|
{
|
||||||
|
get => _obj ?? (new LoggerHelper());
|
||||||
|
set => _obj = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Debug,调试
|
||||||
|
/// <summary>
|
||||||
|
/// 调试信息输出。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="msg">需要记录的信息。</param>
|
||||||
|
public void Debug(string msg)
|
||||||
|
{
|
||||||
|
logdebug.Debug(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Info,信息
|
||||||
|
/// <summary>
|
||||||
|
/// 普通信息输出。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="msg">需要记录的信息。</param>
|
||||||
|
public void Info(string msg)
|
||||||
|
{
|
||||||
|
loginfo.Info(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Warn,警告
|
||||||
|
/// <summary>
|
||||||
|
/// 警告级别信息输出。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="msg">需要记录的信息。</param>
|
||||||
|
public void Warn(string msg)
|
||||||
|
{
|
||||||
|
logwarn.Warn(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Error,错误
|
||||||
|
/// <summary>
|
||||||
|
/// 错误级别信息输出。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="msg">需要记录的信息。</param>
|
||||||
|
public void Error(string msg)
|
||||||
|
{
|
||||||
|
logerror.Error("----------------------------Error BEGIN------------------------------");
|
||||||
|
logerror.Error(msg);
|
||||||
|
logerror.Error("-----------------------------Error END-------------------------------");
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Fatal,致命错误
|
||||||
|
/// <summary>
|
||||||
|
/// 致命错误级别信息输出。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="msg">需要记录的信息。</param>
|
||||||
|
/// <param name="err">需要记录的系统异常。</param>
|
||||||
|
public void Fatal(string msg)
|
||||||
|
{
|
||||||
|
logfatal.Fatal("----------------------------Fatal BEGIN------------------------------");
|
||||||
|
logerror.Fatal(msg);
|
||||||
|
logerror.Fatal("-----------------------------Fatal END-------------------------------");
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 输出json日志
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 输出json日志
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="funName">json方法名</param>
|
||||||
|
/// <param name="json">json数据</param>
|
||||||
|
public void WriteJson(string funName, string json)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//json路径文件名 Environment.ExpandEnvironmentVariables(@"%USERPROFILE%\AppData\Roaming\SWS\Logs\"
|
||||||
|
string filename = Path.Combine(logPath, funName + ".json");
|
||||||
|
//判断文件是否被打开占用
|
||||||
|
if (!FileHelper.IsFileLocked(filename))
|
||||||
|
{
|
||||||
|
File.Delete(filename);
|
||||||
|
string strJson = string.Empty;
|
||||||
|
if (json.StartsWith("["))
|
||||||
|
{
|
||||||
|
//格式化json数据 当前为组类型
|
||||||
|
JArray jobj = JArray.Parse(json);
|
||||||
|
strJson = jobj.ToString();
|
||||||
|
}
|
||||||
|
else if (json.StartsWith("{"))
|
||||||
|
{
|
||||||
|
//格式化json数据 当前为类类型
|
||||||
|
JObject jobj = JObject.Parse(json);
|
||||||
|
strJson = jobj.ToString();
|
||||||
|
}
|
||||||
|
//创建json文件,并输出数据
|
||||||
|
FileStream fs = new FileStream(filename, FileMode.Append);
|
||||||
|
StreamWriter wr = null;
|
||||||
|
wr = new StreamWriter(fs);
|
||||||
|
wr.WriteLine(strJson);
|
||||||
|
wr.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
BIN
newFront/c#前端/SWS.Commons/Images/OpenProject.png
Normal file
BIN
newFront/c#前端/SWS.Commons/Images/OpenProject.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 916 B |
BIN
newFront/c#前端/SWS.Commons/Images/SinalManage.png
Normal file
BIN
newFront/c#前端/SWS.Commons/Images/SinalManage.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 755 B |
33
newFront/c#前端/SWS.Commons/Properties/AssemblyInfo.cs
Normal file
33
newFront/c#前端/SWS.Commons/Properties/AssemblyInfo.cs
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// 有关程序集的一般信息由以下
|
||||||
|
// 控制。更改这些特性值可修改
|
||||||
|
// 与程序集关联的信息。
|
||||||
|
[assembly: AssemblyTitle("SWS.Commons")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("SWS.Commons")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2025")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// 将 ComVisible 设置为 false 会使此程序集中的类型
|
||||||
|
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
|
||||||
|
//请将此类型的 ComVisible 特性设置为 true。
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
|
||||||
|
[assembly: Guid("9ac724f6-883d-4357-9422-602748f25b69")]
|
||||||
|
|
||||||
|
// 程序集的版本信息由下列四个值组成:
|
||||||
|
//
|
||||||
|
// 主版本
|
||||||
|
// 次版本
|
||||||
|
// 生成号
|
||||||
|
// 修订号
|
||||||
|
//
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
134
newFront/c#前端/SWS.Commons/SWS.Commons.csproj
Normal file
134
newFront/c#前端/SWS.Commons/SWS.Commons.csproj
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{9AC724F6-883D-4357-9422-602748F25B69}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>SWS.Commons</RootNamespace>
|
||||||
|
<AssemblyName>SWS.Commons</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<Deterministic>true</Deterministic>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<PlatformTarget>x64</PlatformTarget>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="DryIoc, Version=4.7.7.0, Culture=neutral, PublicKeyToken=dfbf2bd50fcf7768, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\DryIoc.dll.4.7.7\lib\net45\DryIoc.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="INIFileParser">
|
||||||
|
<HintPath>..\packages\ini-parser.2.5.2\lib\net20\INIFileParser.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="log4net, Version=3.1.0.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\log4net.3.1.0\lib\net462\log4net.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions, Version=8.0.0.1, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.8.0.1\lib\net462\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Xaml.Behaviors, Version=1.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Xaml.Behaviors.Wpf.1.1.122\lib\net462\Microsoft.Xaml.Behaviors.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Newtonsoft.Json, Version=13.0.1.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="PresentationCore" />
|
||||||
|
<Reference Include="PresentationFramework" />
|
||||||
|
<Reference Include="Prism, Version=8.1.97.5141, Culture=neutral, PublicKeyToken=40ee6c3a2184dc59, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Prism.Core.8.1.97\lib\net47\Prism.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Prism.DryIoc.Wpf, Version=8.1.97.5141, Culture=neutral, PublicKeyToken=40ee6c3a2184dc59, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Prism.DryIoc.8.1.97\lib\net47\Prism.DryIoc.Wpf.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Prism.Unity.Wpf, Version=8.1.97.5141, Culture=neutral, PublicKeyToken=40ee6c3a2184dc59, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Prism.Unity.8.1.97\lib\net47\Prism.Unity.Wpf.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Prism.Wpf, Version=8.1.97.5141, Culture=neutral, PublicKeyToken=40ee6c3a2184dc59, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Prism.Wpf.8.1.97\lib\net47\Prism.Wpf.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Configuration" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Web" />
|
||||||
|
<Reference Include="System.Windows" />
|
||||||
|
<Reference Include="System.Windows.Forms" />
|
||||||
|
<Reference Include="System.Windows.Presentation" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Net.Http" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
<Reference Include="Telerik.Windows.Controls, Version=2024.1.130.45, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\SWS.CAD\RefDLL\WPF45\Telerik.Windows.Controls.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Unity.Abstractions, Version=5.11.7.0, Culture=neutral, PublicKeyToken=489b6accfaf20ef0, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Unity.Abstractions.5.11.7\lib\net48\Unity.Abstractions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Unity.Container, Version=5.11.11.0, Culture=neutral, PublicKeyToken=489b6accfaf20ef0, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Unity.Container.5.11.11\lib\net48\Unity.Container.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="WindowsBase" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="GlobalObject.cs" />
|
||||||
|
<Compile Include="Helper\Converter\CollectionToStringConverter.cs" />
|
||||||
|
<Compile Include="Helper\Converter\RadGridViewRowToBoolConverter.cs" />
|
||||||
|
<Compile Include="Helper\Converter\StatusToColourConverter.cs" />
|
||||||
|
<Compile Include="Helper\FileHelper.cs" />
|
||||||
|
<Compile Include="Helper\LoggerHelper.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="app.config" />
|
||||||
|
<None Include="log4net.config">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Include="packages.config" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\SWS.Model\SWS.Model.csproj">
|
||||||
|
<Project>{1995385b-d1b0-4c55-835e-d3e769972a6a}</Project>
|
||||||
|
<Name>SWS.Model</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="Images\OpenProject.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="Images\SinalManage.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
</Project>
|
31
newFront/c#前端/SWS.Commons/app.config
Normal file
31
newFront/c#前端/SWS.Commons/app.config
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<runtime>
|
||||||
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="Prism.Wpf" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-9.0.537.60525" newVersion="9.0.537.60525" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="Prism" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-9.0.537.60525" newVersion="9.0.537.60525" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="DryIoc" publicKeyToken="dfbf2bd50fcf7768" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-5.4.3.0" newVersion="5.4.3.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="Prism.Container.Abstractions" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-9.0.106.9543" newVersion="9.0.106.9543" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-8.0.0.1" newVersion="8.0.0.1" />
|
||||||
|
</dependentAssembly>
|
||||||
|
</assemblyBinding>
|
||||||
|
</runtime>
|
||||||
|
</configuration>
|
BIN
newFront/c#前端/SWS.Commons/bin/Debug/DryIoc.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/DryIoc.dll
Normal file
Binary file not shown.
5867
newFront/c#前端/SWS.Commons/bin/Debug/DryIoc.xml
Normal file
5867
newFront/c#前端/SWS.Commons/bin/Debug/DryIoc.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
newFront/c#前端/SWS.Commons/bin/Debug/INIFileParser.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/INIFileParser.dll
Normal file
Binary file not shown.
1181
newFront/c#前端/SWS.Commons/bin/Debug/INIFileParser.xml
Normal file
1181
newFront/c#前端/SWS.Commons/bin/Debug/INIFileParser.xml
Normal file
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -0,0 +1,417 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<doc>
|
||||||
|
<assembly>
|
||||||
|
<name>Microsoft.Bcl.AsyncInterfaces</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="T:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1">
|
||||||
|
<summary>Provides the core logic for implementing a manual-reset <see cref="T:System.Threading.Tasks.Sources.IValueTaskSource"/> or <see cref="T:System.Threading.Tasks.Sources.IValueTaskSource`1"/>.</summary>
|
||||||
|
<typeparam name="TResult"></typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._continuation">
|
||||||
|
<summary>
|
||||||
|
The callback to invoke when the operation completes if <see cref="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.OnCompleted(System.Action{System.Object},System.Object,System.Int16,System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags)"/> was called before the operation completed,
|
||||||
|
or <see cref="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCoreShared.s_sentinel"/> if the operation completed before a callback was supplied,
|
||||||
|
or null if a callback hasn't yet been provided and the operation hasn't yet completed.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._continuationState">
|
||||||
|
<summary>State to pass to <see cref="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._continuation"/>.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._executionContext">
|
||||||
|
<summary><see cref="T:System.Threading.ExecutionContext"/> to flow to the callback, or null if no flowing is required.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._capturedContext">
|
||||||
|
<summary>
|
||||||
|
A "captured" <see cref="T:System.Threading.SynchronizationContext"/> or <see cref="T:System.Threading.Tasks.TaskScheduler"/> with which to invoke the callback,
|
||||||
|
or null if no special context is required.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._completed">
|
||||||
|
<summary>Whether the current operation has completed.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._result">
|
||||||
|
<summary>The result with which the operation succeeded, or the default value if it hasn't yet completed or failed.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._error">
|
||||||
|
<summary>The exception with which the operation failed, or null if it hasn't yet completed or completed successfully.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._version">
|
||||||
|
<summary>The current version of this value, used to help prevent misuse.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.RunContinuationsAsynchronously">
|
||||||
|
<summary>Gets or sets whether to force continuations to run asynchronously.</summary>
|
||||||
|
<remarks>Continuations may run asynchronously if this is false, but they'll never run synchronously if this is true.</remarks>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.Reset">
|
||||||
|
<summary>Resets to prepare for the next operation.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.SetResult(`0)">
|
||||||
|
<summary>Completes with a successful result.</summary>
|
||||||
|
<param name="result">The result.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.SetException(System.Exception)">
|
||||||
|
<summary>Complets with an error.</summary>
|
||||||
|
<param name="error"></param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.Version">
|
||||||
|
<summary>Gets the operation version.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.GetStatus(System.Int16)">
|
||||||
|
<summary>Gets the status of the operation.</summary>
|
||||||
|
<param name="token">Opaque value that was provided to the <see cref="T:System.Threading.Tasks.ValueTask"/>'s constructor.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.GetResult(System.Int16)">
|
||||||
|
<summary>Gets the result of the operation.</summary>
|
||||||
|
<param name="token">Opaque value that was provided to the <see cref="T:System.Threading.Tasks.ValueTask"/>'s constructor.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.OnCompleted(System.Action{System.Object},System.Object,System.Int16,System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags)">
|
||||||
|
<summary>Schedules the continuation action for this operation.</summary>
|
||||||
|
<param name="continuation">The continuation to invoke when the operation has completed.</param>
|
||||||
|
<param name="state">The state object to pass to <paramref name="continuation"/> when it's invoked.</param>
|
||||||
|
<param name="token">Opaque value that was provided to the <see cref="T:System.Threading.Tasks.ValueTask"/>'s constructor.</param>
|
||||||
|
<param name="flags">The flags describing the behavior of the continuation.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.ValidateToken(System.Int16)">
|
||||||
|
<summary>Ensures that the specified token matches the current version.</summary>
|
||||||
|
<param name="token">The token supplied by <see cref="T:System.Threading.Tasks.ValueTask"/>.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.SignalCompletion">
|
||||||
|
<summary>Signals that the operation has completed. Invoked after the result or error has been set.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.InvokeContinuation">
|
||||||
|
<summary>
|
||||||
|
Invokes the continuation with the appropriate captured context / scheduler.
|
||||||
|
This assumes that if <see cref="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._executionContext"/> is not null we're already
|
||||||
|
running within that <see cref="T:System.Threading.ExecutionContext"/>.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Threading.Tasks.TaskAsyncEnumerableExtensions">
|
||||||
|
<summary>Provides a set of static methods for configuring <see cref="T:System.Threading.Tasks.Task"/>-related behaviors on asynchronous enumerables and disposables.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.TaskAsyncEnumerableExtensions.ConfigureAwait(System.IAsyncDisposable,System.Boolean)">
|
||||||
|
<summary>Configures how awaits on the tasks returned from an async disposable will be performed.</summary>
|
||||||
|
<param name="source">The source async disposable.</param>
|
||||||
|
<param name="continueOnCapturedContext">Whether to capture and marshal back to the current context.</param>
|
||||||
|
<returns>The configured async disposable.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.TaskAsyncEnumerableExtensions.ConfigureAwait``1(System.Collections.Generic.IAsyncEnumerable{``0},System.Boolean)">
|
||||||
|
<summary>Configures how awaits on the tasks returned from an async iteration will be performed.</summary>
|
||||||
|
<typeparam name="T">The type of the objects being iterated.</typeparam>
|
||||||
|
<param name="source">The source enumerable being iterated.</param>
|
||||||
|
<param name="continueOnCapturedContext">Whether to capture and marshal back to the current context.</param>
|
||||||
|
<returns>The configured enumerable.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.TaskAsyncEnumerableExtensions.WithCancellation``1(System.Collections.Generic.IAsyncEnumerable{``0},System.Threading.CancellationToken)">
|
||||||
|
<summary>Sets the <see cref="T:System.Threading.CancellationToken"/> to be passed to <see cref="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)"/> when iterating.</summary>
|
||||||
|
<typeparam name="T">The type of the objects being iterated.</typeparam>
|
||||||
|
<param name="source">The source enumerable being iterated.</param>
|
||||||
|
<param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to use.</param>
|
||||||
|
<returns>The configured enumerable.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder">
|
||||||
|
<summary>Represents a builder for asynchronous iterators.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.Create">
|
||||||
|
<summary>Creates an instance of the <see cref="T:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder"/> struct.</summary>
|
||||||
|
<returns>The initialized instance.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.MoveNext``1(``0@)">
|
||||||
|
<summary>Invokes <see cref="M:System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext"/> on the state machine while guarding the <see cref="T:System.Threading.ExecutionContext"/>.</summary>
|
||||||
|
<typeparam name="TStateMachine">The type of the state machine.</typeparam>
|
||||||
|
<param name="stateMachine">The state machine instance, passed by reference.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitOnCompleted``2(``0@,``1@)">
|
||||||
|
<summary>Schedules the state machine to proceed to the next action when the specified awaiter completes.</summary>
|
||||||
|
<typeparam name="TAwaiter">The type of the awaiter.</typeparam>
|
||||||
|
<typeparam name="TStateMachine">The type of the state machine.</typeparam>
|
||||||
|
<param name="awaiter">The awaiter.</param>
|
||||||
|
<param name="stateMachine">The state machine.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitUnsafeOnCompleted``2(``0@,``1@)">
|
||||||
|
<summary>Schedules the state machine to proceed to the next action when the specified awaiter completes.</summary>
|
||||||
|
<typeparam name="TAwaiter">The type of the awaiter.</typeparam>
|
||||||
|
<typeparam name="TStateMachine">The type of the state machine.</typeparam>
|
||||||
|
<param name="awaiter">The awaiter.</param>
|
||||||
|
<param name="stateMachine">The state machine.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.Complete">
|
||||||
|
<summary>Marks iteration as being completed, whether successfully or otherwise.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.ObjectIdForDebugger">
|
||||||
|
<summary>Gets an object that may be used to uniquely identify this builder to the debugger.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute">
|
||||||
|
<summary>Indicates whether a method is an asynchronous iterator.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute.#ctor(System.Type)">
|
||||||
|
<summary>Initializes a new instance of the <see cref="T:System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute"/> class.</summary>
|
||||||
|
<param name="stateMachineType">The type object for the underlying state machine type that's used to implement a state machine method.</param>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Runtime.CompilerServices.ConfiguredAsyncDisposable">
|
||||||
|
<summary>Provides a type that can be used to configure how awaits on an <see cref="T:System.IAsyncDisposable"/> are performed.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.ConfiguredAsyncDisposable.DisposeAsync">
|
||||||
|
<summary>Asynchronously releases the unmanaged resources used by the <see cref="T:System.Runtime.CompilerServices.ConfiguredAsyncDisposable" />.</summary>
|
||||||
|
<returns>A task that represents the asynchronous dispose operation.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1">
|
||||||
|
<summary>Provides an awaitable async enumerable that enables cancelable iteration and configured awaits.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.ConfigureAwait(System.Boolean)">
|
||||||
|
<summary>Configures how awaits on the tasks returned from an async iteration will be performed.</summary>
|
||||||
|
<param name="continueOnCapturedContext">Whether to capture and marshal back to the current context.</param>
|
||||||
|
<returns>The configured enumerable.</returns>
|
||||||
|
<remarks>This will replace any previous value set by <see cref="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.ConfigureAwait(System.Boolean)"/> for this iteration.</remarks>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.WithCancellation(System.Threading.CancellationToken)">
|
||||||
|
<summary>Sets the <see cref="T:System.Threading.CancellationToken"/> to be passed to <see cref="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)"/> when iterating.</summary>
|
||||||
|
<param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to use.</param>
|
||||||
|
<returns>The configured enumerable.</returns>
|
||||||
|
<remarks>This will replace any previous <see cref="T:System.Threading.CancellationToken"/> set by <see cref="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.WithCancellation(System.Threading.CancellationToken)"/> for this iteration.</remarks>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.GetAsyncEnumerator">
|
||||||
|
<summary>Returns an enumerator that iterates asynchronously through collections that enables cancelable iteration and configured awaits.</summary>
|
||||||
|
<returns>An enumerator for the <see cref="T:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1" /> class.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator">
|
||||||
|
<summary>Provides an awaitable async enumerator that enables cancelable iteration and configured awaits.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.MoveNextAsync">
|
||||||
|
<summary>Advances the enumerator asynchronously to the next element of the collection.</summary>
|
||||||
|
<returns>
|
||||||
|
A <see cref="T:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1"/> that will complete with a result of <c>true</c>
|
||||||
|
if the enumerator was successfully advanced to the next element, or <c>false</c> if the enumerator has
|
||||||
|
passed the end of the collection.
|
||||||
|
</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.Current">
|
||||||
|
<summary>Gets the element in the collection at the current position of the enumerator.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.DisposeAsync">
|
||||||
|
<summary>
|
||||||
|
Performs application-defined tasks associated with freeing, releasing, or
|
||||||
|
resetting unmanaged resources asynchronously.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Runtime.CompilerServices.EnumeratorCancellationAttribute">
|
||||||
|
<summary>Allows users of async-enumerable methods to mark the parameter that should receive the cancellation token value from <see cref="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)" />.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.EnumeratorCancellationAttribute.#ctor">
|
||||||
|
<summary>Initializes a new instance of the <see cref="T:System.Runtime.CompilerServices.EnumeratorCancellationAttribute" /> class.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Runtime.InteropServices.LibraryImportAttribute">
|
||||||
|
<summary>
|
||||||
|
Attribute used to indicate a source generator should create a function for marshalling
|
||||||
|
arguments instead of relying on the runtime to generate an equivalent marshalling function at run-time.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
This attribute is meaningless if the source generator associated with it is not enabled.
|
||||||
|
The current built-in source generator only supports C# and only supplies an implementation when
|
||||||
|
applied to static, partial, non-generic methods.
|
||||||
|
</remarks>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.InteropServices.LibraryImportAttribute.#ctor(System.String)">
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.LibraryImportAttribute"/>.
|
||||||
|
</summary>
|
||||||
|
<param name="libraryName">Name of the library containing the import.</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.LibraryName">
|
||||||
|
<summary>
|
||||||
|
Gets the name of the library containing the import.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.EntryPoint">
|
||||||
|
<summary>
|
||||||
|
Gets or sets the name of the entry point to be called.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshalling">
|
||||||
|
<summary>
|
||||||
|
Gets or sets how to marshal string arguments to the method.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
If this field is set to a value other than <see cref="F:System.Runtime.InteropServices.StringMarshalling.Custom" />,
|
||||||
|
<see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType" /> must not be specified.
|
||||||
|
</remarks>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType">
|
||||||
|
<summary>
|
||||||
|
Gets or sets the <see cref="T:System.Type"/> used to control how string arguments to the method are marshalled.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
If this field is specified, <see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshalling" /> must not be specified
|
||||||
|
or must be set to <see cref="F:System.Runtime.InteropServices.StringMarshalling.Custom" />.
|
||||||
|
</remarks>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.SetLastError">
|
||||||
|
<summary>
|
||||||
|
Gets or sets whether the callee sets an error (SetLastError on Windows or errno
|
||||||
|
on other platforms) before returning from the attributed method.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Runtime.InteropServices.StringMarshalling">
|
||||||
|
<summary>
|
||||||
|
Specifies how strings should be marshalled for generated p/invokes
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Runtime.InteropServices.StringMarshalling.Custom">
|
||||||
|
<summary>
|
||||||
|
Indicates the user is suppling a specific marshaller in <see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType"/>.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Runtime.InteropServices.StringMarshalling.Utf8">
|
||||||
|
<summary>
|
||||||
|
Use the platform-provided UTF-8 marshaller.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Runtime.InteropServices.StringMarshalling.Utf16">
|
||||||
|
<summary>
|
||||||
|
Use the platform-provided UTF-16 marshaller.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Collections.Generic.IAsyncEnumerable`1">
|
||||||
|
<summary>Exposes an enumerator that provides asynchronous iteration over values of a specified type.</summary>
|
||||||
|
<typeparam name="T">The type of values to enumerate.</typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)">
|
||||||
|
<summary>Returns an enumerator that iterates asynchronously through the collection.</summary>
|
||||||
|
<param name="cancellationToken">A <see cref="T:System.Threading.CancellationToken"/> that may be used to cancel the asynchronous iteration.</param>
|
||||||
|
<returns>An enumerator that can be used to iterate asynchronously through the collection.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Collections.Generic.IAsyncEnumerator`1">
|
||||||
|
<summary>Supports a simple asynchronous iteration over a generic collection.</summary>
|
||||||
|
<typeparam name="T">The type of objects to enumerate.</typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Collections.Generic.IAsyncEnumerator`1.MoveNextAsync">
|
||||||
|
<summary>Advances the enumerator asynchronously to the next element of the collection.</summary>
|
||||||
|
<returns>
|
||||||
|
A <see cref="T:System.Threading.Tasks.ValueTask`1"/> that will complete with a result of <c>true</c> if the enumerator
|
||||||
|
was successfully advanced to the next element, or <c>false</c> if the enumerator has passed the end
|
||||||
|
of the collection.
|
||||||
|
</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Collections.Generic.IAsyncEnumerator`1.Current">
|
||||||
|
<summary>Gets the element in the collection at the current position of the enumerator.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.IAsyncDisposable">
|
||||||
|
<summary>Provides a mechanism for releasing unmanaged resources asynchronously.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IAsyncDisposable.DisposeAsync">
|
||||||
|
<summary>
|
||||||
|
Performs application-defined tasks associated with freeing, releasing, or
|
||||||
|
resetting unmanaged resources asynchronously.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Diagnostics.CodeAnalysis.AllowNullAttribute">
|
||||||
|
<summary>Specifies that null is allowed as an input even if the corresponding type disallows it.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Diagnostics.CodeAnalysis.DisallowNullAttribute">
|
||||||
|
<summary>Specifies that null is disallowed as an input even if the corresponding type allows it.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullAttribute">
|
||||||
|
<summary>Specifies that an output may be null even if the corresponding type disallows it.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Diagnostics.CodeAnalysis.NotNullAttribute">
|
||||||
|
<summary>Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute">
|
||||||
|
<summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue"/>, the parameter may be null even if the corresponding type disallows it.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.#ctor(System.Boolean)">
|
||||||
|
<summary>Initializes the attribute with the specified return value condition.</summary>
|
||||||
|
<param name="returnValue">
|
||||||
|
The return value condition. If the method returns this value, the associated parameter may be null.
|
||||||
|
</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue">
|
||||||
|
<summary>Gets the return value condition.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute">
|
||||||
|
<summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue"/>, the parameter will not be null even if the corresponding type allows it.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.#ctor(System.Boolean)">
|
||||||
|
<summary>Initializes the attribute with the specified return value condition.</summary>
|
||||||
|
<param name="returnValue">
|
||||||
|
The return value condition. If the method returns this value, the associated parameter will not be null.
|
||||||
|
</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue">
|
||||||
|
<summary>Gets the return value condition.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute">
|
||||||
|
<summary>Specifies that the output will be non-null if the named parameter is non-null.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.#ctor(System.String)">
|
||||||
|
<summary>Initializes the attribute with the associated parameter name.</summary>
|
||||||
|
<param name="parameterName">
|
||||||
|
The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null.
|
||||||
|
</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.ParameterName">
|
||||||
|
<summary>Gets the associated parameter name.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute">
|
||||||
|
<summary>Applied to a method that will never return under any circumstance.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute">
|
||||||
|
<summary>Specifies that the method will not return if the associated Boolean parameter is passed the specified value.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.#ctor(System.Boolean)">
|
||||||
|
<summary>Initializes the attribute with the specified parameter value.</summary>
|
||||||
|
<param name="parameterValue">
|
||||||
|
The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to
|
||||||
|
the associated parameter matches this value.
|
||||||
|
</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.ParameterValue">
|
||||||
|
<summary>Gets the condition parameter value.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute">
|
||||||
|
<summary>Specifies that the method or property will ensure that the listed field and property members have not-null values.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String)">
|
||||||
|
<summary>Initializes the attribute with a field or property member.</summary>
|
||||||
|
<param name="member">
|
||||||
|
The field or property member that is promised to be not-null.
|
||||||
|
</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String[])">
|
||||||
|
<summary>Initializes the attribute with the list of field and property members.</summary>
|
||||||
|
<param name="members">
|
||||||
|
The list of field and property members that are promised to be not-null.
|
||||||
|
</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.Members">
|
||||||
|
<summary>Gets field or property member names.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute">
|
||||||
|
<summary>Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String)">
|
||||||
|
<summary>Initializes the attribute with the specified return value condition and a field or property member.</summary>
|
||||||
|
<param name="returnValue">
|
||||||
|
The return value condition. If the method returns this value, the associated parameter will not be null.
|
||||||
|
</param>
|
||||||
|
<param name="member">
|
||||||
|
The field or property member that is promised to be not-null.
|
||||||
|
</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String[])">
|
||||||
|
<summary>Initializes the attribute with the specified return value condition and list of field and property members.</summary>
|
||||||
|
<param name="returnValue">
|
||||||
|
The return value condition. If the method returns this value, the associated parameter will not be null.
|
||||||
|
</param>
|
||||||
|
<param name="members">
|
||||||
|
The list of field and property members that are promised to be not-null.
|
||||||
|
</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.ReturnValue">
|
||||||
|
<summary>Gets the return value condition.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.Members">
|
||||||
|
<summary>Gets field or property member names.</summary>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Microsoft.Xaml.Behaviors.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Microsoft.Xaml.Behaviors.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Microsoft.Xaml.Behaviors.pdb
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Microsoft.Xaml.Behaviors.pdb
Normal file
Binary file not shown.
2400
newFront/c#前端/SWS.Commons/bin/Debug/Microsoft.Xaml.Behaviors.xml
Normal file
2400
newFront/c#前端/SWS.Commons/bin/Debug/Microsoft.Xaml.Behaviors.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Newtonsoft.Json.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Newtonsoft.Json.dll
Normal file
Binary file not shown.
11363
newFront/c#前端/SWS.Commons/bin/Debug/Newtonsoft.Json.xml
Normal file
11363
newFront/c#前端/SWS.Commons/bin/Debug/Newtonsoft.Json.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.DryIoc.Wpf.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.DryIoc.Wpf.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.DryIoc.Wpf.pdb
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.DryIoc.Wpf.pdb
Normal file
Binary file not shown.
341
newFront/c#前端/SWS.Commons/bin/Debug/Prism.DryIoc.Wpf.xml
Normal file
341
newFront/c#前端/SWS.Commons/bin/Debug/Prism.DryIoc.Wpf.xml
Normal file
@ -0,0 +1,341 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<doc>
|
||||||
|
<assembly>
|
||||||
|
<name>Prism.DryIoc.Wpf</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="T:Prism.DryIoc.PrismApplication">
|
||||||
|
<summary>
|
||||||
|
Base application class that uses <see cref="T:Prism.DryIoc.DryIocContainerExtension"/> as it's container.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.PrismApplication.CreateContainerRules">
|
||||||
|
<summary>
|
||||||
|
Create <see cref="T:DryIoc.Rules" /> to alter behavior of <see cref="T:DryIoc.IContainer" />
|
||||||
|
</summary>
|
||||||
|
<returns>An instance of <see cref="T:DryIoc.Rules" /></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.PrismApplication.CreateContainerExtension">
|
||||||
|
<summary>
|
||||||
|
Create a new <see cref="T:Prism.DryIoc.DryIocContainerExtension"/> used by Prism.
|
||||||
|
</summary>
|
||||||
|
<returns>A new <see cref="T:Prism.DryIoc.DryIocContainerExtension"/>.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.PrismApplication.RegisterFrameworkExceptionTypes">
|
||||||
|
<summary>
|
||||||
|
Registers the <see cref="T:System.Type"/>s of the Exceptions that are not considered
|
||||||
|
root exceptions by the <see cref="T:System.ExceptionExtensions"/>.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:Prism.DryIoc.PrismBootstrapper">
|
||||||
|
<summary>
|
||||||
|
Base bootstrapper class that uses <see cref="T:Prism.DryIoc.DryIocContainerExtension"/> as it's container.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.PrismBootstrapper.CreateContainerRules">
|
||||||
|
<summary>
|
||||||
|
Create <see cref="T:DryIoc.Rules" /> to alter behavior of <see cref="T:DryIoc.IContainer" />
|
||||||
|
</summary>
|
||||||
|
<returns>An instance of <see cref="T:DryIoc.Rules" /></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.PrismBootstrapper.CreateContainerExtension">
|
||||||
|
<summary>
|
||||||
|
Create a new <see cref="T:Prism.DryIoc.DryIocContainerExtension"/> used by Prism.
|
||||||
|
</summary>
|
||||||
|
<returns>A new <see cref="T:Prism.DryIoc.DryIocContainerExtension"/>.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.PrismBootstrapper.RegisterFrameworkExceptionTypes">
|
||||||
|
<summary>
|
||||||
|
Registers the <see cref="T:System.Type"/>s of the Exceptions that are not considered
|
||||||
|
root exceptions by the <see cref="T:System.ExceptionExtensions"/>.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:Prism.DryIoc.Properties.Resources">
|
||||||
|
<summary>
|
||||||
|
A strongly-typed resource class, for looking up localized strings, etc.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Prism.DryIoc.Properties.Resources.ResourceManager">
|
||||||
|
<summary>
|
||||||
|
Returns the cached ResourceManager instance used by this class.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Prism.DryIoc.Properties.Resources.Culture">
|
||||||
|
<summary>
|
||||||
|
Overrides the current thread's CurrentUICulture property for all
|
||||||
|
resource lookups using this strongly typed resource class.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Prism.DryIoc.Properties.Resources.NotOverwrittenGetModuleEnumeratorException">
|
||||||
|
<summary>
|
||||||
|
Looks up a localized string similar to The method 'GetModuleEnumerator' of the bootstrapper must be overwritten in order to use the default module initialization logic..
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Prism.DryIoc.Properties.Resources.NullDryIocContainerBuilderException">
|
||||||
|
<summary>
|
||||||
|
Looks up a localized string similar to The ContainerBuilder is required and cannot be null..
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Prism.DryIoc.Properties.Resources.NullDryIocContainerException">
|
||||||
|
<summary>
|
||||||
|
Looks up a localized string similar to The IContainer is required and cannot be null..
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Prism.DryIoc.Properties.Resources.NullLoggerFacadeException">
|
||||||
|
<summary>
|
||||||
|
Looks up a localized string similar to The ILoggerFacade is required and cannot be null..
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Prism.DryIoc.Properties.Resources.NullModuleCatalogException">
|
||||||
|
<summary>
|
||||||
|
Looks up a localized string similar to The IModuleCatalog is required and cannot be null in order to initialize the modules..
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Prism.DryIoc.Properties.Resources.TypeMappingAlreadyRegistered">
|
||||||
|
<summary>
|
||||||
|
Looks up a localized string similar to Type '{0}' was already registered by the application. Skipping....
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:Prism.DryIoc.DryIocContainerExtension">
|
||||||
|
<summary>
|
||||||
|
The <see cref="T:Prism.Ioc.IContainerExtension" /> Implementation to use with DryIoc
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Prism.DryIoc.DryIocContainerExtension.DefaultRules">
|
||||||
|
<summary>
|
||||||
|
Gets the Default DryIoc Container Rules used by Prism
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Prism.DryIoc.DryIocContainerExtension.Instance">
|
||||||
|
<summary>
|
||||||
|
The instance of the wrapped container
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.#ctor">
|
||||||
|
<summary>
|
||||||
|
Constructs a default instance of the <see cref="T:Prism.DryIoc.DryIocContainerExtension" />
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.#ctor(DryIoc.IContainer)">
|
||||||
|
<summary>
|
||||||
|
Constructs a new <see cref="T:Prism.DryIoc.DryIocContainerExtension" />
|
||||||
|
</summary>
|
||||||
|
<param name="container">The <see cref="T:DryIoc.IContainer" /> instance to use.</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:Prism.DryIoc.DryIocContainerExtension.CurrentScope">
|
||||||
|
<summary>
|
||||||
|
Gets the current scope
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.FinalizeExtension">
|
||||||
|
<summary>
|
||||||
|
Used to perform any final steps for configuring the extension that may be required by the container.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterInstance(System.Type,System.Object)">
|
||||||
|
<summary>
|
||||||
|
Registers an instance of a given <see cref="T:System.Type"/>
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type"/> that is being registered</param>
|
||||||
|
<param name="instance">The instance of the service or <see cref="T:System.Type" /></param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterInstance(System.Type,System.Object,System.String)">
|
||||||
|
<summary>
|
||||||
|
Registers an instance of a given <see cref="T:System.Type"/> with the specified name or key
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type"/> that is being registered</param>
|
||||||
|
<param name="instance">The instance of the service or <see cref="T:System.Type" /></param>
|
||||||
|
<param name="name">The name or key to register the service</param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterSingleton(System.Type,System.Type)">
|
||||||
|
<summary>
|
||||||
|
Registers a Singleton with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
|
||||||
|
</summary>
|
||||||
|
<param name="from">The service <see cref="T:System.Type" /></param>
|
||||||
|
<param name="to">The implementation <see cref="T:System.Type" /></param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterSingleton(System.Type,System.Type,System.String)">
|
||||||
|
<summary>
|
||||||
|
Registers a Singleton with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
|
||||||
|
</summary>
|
||||||
|
<param name="from">The service <see cref="T:System.Type" /></param>
|
||||||
|
<param name="to">The implementation <see cref="T:System.Type" /></param>
|
||||||
|
<param name="name">The name or key to register the service</param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterSingleton(System.Type,System.Func{System.Object})">
|
||||||
|
<summary>
|
||||||
|
Registers a Singleton with the given service <see cref="T:System.Type" /> factory delegate method.
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||||
|
<param name="factoryMethod">The delegate method.</param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterSingleton(System.Type,System.Func{Prism.Ioc.IContainerProvider,System.Object})">
|
||||||
|
<summary>
|
||||||
|
Registers a Singleton with the given service <see cref="T:System.Type" /> factory delegate method.
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||||
|
<param name="factoryMethod">The delegate method using <see cref="T:Prism.Ioc.IContainerProvider"/>.</param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterManySingleton(System.Type,System.Type[])">
|
||||||
|
<summary>
|
||||||
|
Registers a Singleton Service which implements service interfaces
|
||||||
|
</summary>
|
||||||
|
<param name="type">The implementation <see cref="T:System.Type" />.</param>
|
||||||
|
<param name="serviceTypes">The service <see cref="T:System.Type"/>'s.</param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
<remarks>Registers all interfaces if none are specified.</remarks>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterScoped(System.Type,System.Type)">
|
||||||
|
<summary>
|
||||||
|
Registers a scoped service
|
||||||
|
</summary>
|
||||||
|
<param name="from">The service <see cref="T:System.Type" /></param>
|
||||||
|
<param name="to">The implementation <see cref="T:System.Type" /></param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterScoped(System.Type,System.Func{System.Object})">
|
||||||
|
<summary>
|
||||||
|
Registers a scoped service using a delegate method.
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||||
|
<param name="factoryMethod">The delegate method.</param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterScoped(System.Type,System.Func{Prism.Ioc.IContainerProvider,System.Object})">
|
||||||
|
<summary>
|
||||||
|
Registers a scoped service using a delegate method.
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type"/>.</param>
|
||||||
|
<param name="factoryMethod">The delegate method using the <see cref="T:Prism.Ioc.IContainerProvider"/>.</param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.Register(System.Type,System.Type)">
|
||||||
|
<summary>
|
||||||
|
Registers a Transient with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
|
||||||
|
</summary>
|
||||||
|
<param name="from">The service <see cref="T:System.Type" /></param>
|
||||||
|
<param name="to">The implementation <see cref="T:System.Type" /></param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.Register(System.Type,System.Type,System.String)">
|
||||||
|
<summary>
|
||||||
|
Registers a Transient with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
|
||||||
|
</summary>
|
||||||
|
<param name="from">The service <see cref="T:System.Type" /></param>
|
||||||
|
<param name="to">The implementation <see cref="T:System.Type" /></param>
|
||||||
|
<param name="name">The name or key to register the service</param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.Register(System.Type,System.Func{System.Object})">
|
||||||
|
<summary>
|
||||||
|
Registers a Transient Service using a delegate method
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||||
|
<param name="factoryMethod">The delegate method.</param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.Register(System.Type,System.Func{Prism.Ioc.IContainerProvider,System.Object})">
|
||||||
|
<summary>
|
||||||
|
Registers a Transient Service using a delegate method
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||||
|
<param name="factoryMethod">The delegate method using <see cref="T:Prism.Ioc.IContainerProvider"/>.</param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.RegisterMany(System.Type,System.Type[])">
|
||||||
|
<summary>
|
||||||
|
Registers a Transient Service which implements service interfaces
|
||||||
|
</summary>
|
||||||
|
<param name="type">The implementing <see cref="T:System.Type" />.</param>
|
||||||
|
<param name="serviceTypes">The service <see cref="T:System.Type"/>'s.</param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
<remarks>Registers all interfaces if none are specified.</remarks>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.Resolve(System.Type)">
|
||||||
|
<summary>
|
||||||
|
Resolves a given <see cref="T:System.Type"/>
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type"/></param>
|
||||||
|
<returns>The resolved Service <see cref="T:System.Type"/></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.Resolve(System.Type,System.String)">
|
||||||
|
<summary>
|
||||||
|
Resolves a given <see cref="T:System.Type"/>
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type"/></param>
|
||||||
|
<param name="name">The service name/key used when registering the <see cref="T:System.Type"/></param>
|
||||||
|
<returns>The resolved Service <see cref="T:System.Type"/></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.Resolve(System.Type,System.ValueTuple{System.Type,System.Object}[])">
|
||||||
|
<summary>
|
||||||
|
Resolves a given <see cref="T:System.Type"/>
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type"/></param>
|
||||||
|
<param name="parameters">Typed parameters to use when resolving the Service</param>
|
||||||
|
<returns>The resolved Service <see cref="T:System.Type"/></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.Resolve(System.Type,System.String,System.ValueTuple{System.Type,System.Object}[])">
|
||||||
|
<summary>
|
||||||
|
Resolves a given <see cref="T:System.Type"/>
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type"/></param>
|
||||||
|
<param name="name">The service name/key used when registering the <see cref="T:System.Type"/></param>
|
||||||
|
<param name="parameters">Typed parameters to use when resolving the Service</param>
|
||||||
|
<returns>The resolved Service <see cref="T:System.Type"/></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.IsRegistered(System.Type)">
|
||||||
|
<summary>
|
||||||
|
Determines if a given service is registered
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||||
|
<returns><c>true</c> if the service is registered.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.IsRegistered(System.Type,System.String)">
|
||||||
|
<summary>
|
||||||
|
Determines if a given service is registered with the specified name
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||||
|
<param name="name">The service name or key used</param>
|
||||||
|
<returns><c>true</c> if the service is registered.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.CreateScope">
|
||||||
|
<summary>
|
||||||
|
Creates a new Scope
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.DryIocContainerExtension.CreateScopeInternal">
|
||||||
|
<summary>
|
||||||
|
Creates a new Scope and provides the updated ServiceProvider
|
||||||
|
</summary>
|
||||||
|
<returns>The Scoped <see cref="T:DryIoc.IResolverContext" />.</returns>
|
||||||
|
<remarks>
|
||||||
|
This should be called by custom implementations that Implement IServiceScopeFactory
|
||||||
|
</remarks>
|
||||||
|
</member>
|
||||||
|
<member name="T:Prism.DryIoc.PrismIocExtensions">
|
||||||
|
<summary>
|
||||||
|
Extensions help get the underlying <see cref="T:DryIoc.IContainer" />
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.PrismIocExtensions.GetContainer(Prism.Ioc.IContainerProvider)">
|
||||||
|
<summary>
|
||||||
|
Gets the <see cref="T:DryIoc.IContainer" /> from the <see cref="T:Prism.Ioc.IContainerProvider" />
|
||||||
|
</summary>
|
||||||
|
<param name="containerProvider">The current <see cref="T:Prism.Ioc.IContainerProvider" /></param>
|
||||||
|
<returns>The underlying <see cref="T:DryIoc.IContainer" /></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.DryIoc.PrismIocExtensions.GetContainer(Prism.Ioc.IContainerRegistry)">
|
||||||
|
<summary>
|
||||||
|
Gets the <see cref="T:DryIoc.IContainer" /> from the <see cref="T:Prism.Ioc.IContainerProvider" />
|
||||||
|
</summary>
|
||||||
|
<param name="containerRegistry">The current <see cref="T:Prism.Ioc.IContainerRegistry" /></param>
|
||||||
|
<returns>The underlying <see cref="T:DryIoc.IContainer" /></returns>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Unity.Wpf.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Unity.Wpf.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Unity.Wpf.pdb
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Unity.Wpf.pdb
Normal file
Binary file not shown.
324
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Unity.Wpf.xml
Normal file
324
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Unity.Wpf.xml
Normal file
@ -0,0 +1,324 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<doc>
|
||||||
|
<assembly>
|
||||||
|
<name>Prism.Unity.Wpf</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="T:Prism.Unity.PrismApplication">
|
||||||
|
<summary>
|
||||||
|
Base application class that uses <see cref="T:Prism.Unity.UnityContainerExtension"/> as it's container.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.PrismApplication.CreateContainerExtension">
|
||||||
|
<summary>
|
||||||
|
Create a new <see cref="T:Prism.Unity.UnityContainerExtension"/> used by Prism.
|
||||||
|
</summary>
|
||||||
|
<returns>A new <see cref="T:Prism.Unity.UnityContainerExtension"/>.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.PrismApplication.RegisterFrameworkExceptionTypes">
|
||||||
|
<summary>
|
||||||
|
Registers the <see cref="T:System.Type"/>s of the Exceptions that are not considered
|
||||||
|
root exceptions by the <see cref="T:System.ExceptionExtensions"/>.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:Prism.Unity.PrismBootstrapper">
|
||||||
|
<summary>
|
||||||
|
Base bootstrapper class that uses <see cref="T:Prism.Unity.UnityContainerExtension"/> as it's container.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.PrismBootstrapper.CreateContainerExtension">
|
||||||
|
<summary>
|
||||||
|
Create a new <see cref="T:Prism.Unity.UnityContainerExtension"/> used by Prism.
|
||||||
|
</summary>
|
||||||
|
<returns>A new <see cref="T:Prism.Unity.UnityContainerExtension"/>.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.PrismBootstrapper.RegisterFrameworkExceptionTypes">
|
||||||
|
<summary>
|
||||||
|
Registers the <see cref="T:System.Type"/>s of the Exceptions that are not considered
|
||||||
|
root exceptions by the <see cref="T:System.ExceptionExtensions"/>.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:Prism.Unity.Properties.Resources">
|
||||||
|
<summary>
|
||||||
|
A strongly-typed resource class, for looking up localized strings, etc.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Prism.Unity.Properties.Resources.ResourceManager">
|
||||||
|
<summary>
|
||||||
|
Returns the cached ResourceManager instance used by this class.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Prism.Unity.Properties.Resources.Culture">
|
||||||
|
<summary>
|
||||||
|
Overrides the current thread's CurrentUICulture property for all
|
||||||
|
resource lookups using this strongly typed resource class.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Prism.Unity.Properties.Resources.NotOverwrittenGetModuleEnumeratorException">
|
||||||
|
<summary>
|
||||||
|
Looks up a localized string similar to The method 'GetModuleEnumerator' of the bootstrapper must be overwritten in order to use the default module initialization logic..
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Prism.Unity.Properties.Resources.NullLoggerFacadeException">
|
||||||
|
<summary>
|
||||||
|
Looks up a localized string similar to The ILoggerFacade is required and cannot be null..
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Prism.Unity.Properties.Resources.NullModuleCatalogException">
|
||||||
|
<summary>
|
||||||
|
Looks up a localized string similar to The IModuleCatalog is required and cannot be null in order to initialize the modules..
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Prism.Unity.Properties.Resources.NullUnityContainerException">
|
||||||
|
<summary>
|
||||||
|
Looks up a localized string similar to The IUnityContainer is required and cannot be null..
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Prism.Unity.Properties.Resources.SettingTheRegionManager">
|
||||||
|
<summary>
|
||||||
|
Looks up a localized string similar to Setting the RegionManager..
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Prism.Unity.Properties.Resources.TypeMappingAlreadyRegistered">
|
||||||
|
<summary>
|
||||||
|
Looks up a localized string similar to Type '{0}' was already registered by the application. Skipping....
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:Prism.Unity.PrismIocExtensions">
|
||||||
|
<summary>
|
||||||
|
Extensions help get the underlying <see cref="T:Unity.IUnityContainer" />
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.PrismIocExtensions.GetContainer(Prism.Ioc.IContainerProvider)">
|
||||||
|
<summary>
|
||||||
|
Gets the <see cref="T:Unity.IUnityContainer" /> from the <see cref="T:Prism.Ioc.IContainerProvider" />
|
||||||
|
</summary>
|
||||||
|
<param name="containerProvider">The current <see cref="T:Prism.Ioc.IContainerProvider" /></param>
|
||||||
|
<returns>The underlying <see cref="T:Unity.IUnityContainer" /></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.PrismIocExtensions.GetContainer(Prism.Ioc.IContainerRegistry)">
|
||||||
|
<summary>
|
||||||
|
Gets the <see cref="T:Unity.IUnityContainer" /> from the <see cref="T:Prism.Ioc.IContainerProvider" />
|
||||||
|
</summary>
|
||||||
|
<param name="containerRegistry">The current <see cref="T:Prism.Ioc.IContainerRegistry" /></param>
|
||||||
|
<returns>The underlying <see cref="T:Unity.IUnityContainer" /></returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:Prism.Unity.UnityContainerExtension">
|
||||||
|
<summary>
|
||||||
|
The Unity implementation of the <see cref="T:Prism.Ioc.IContainerExtension" />
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Prism.Unity.UnityContainerExtension.Instance">
|
||||||
|
<summary>
|
||||||
|
The instance of the wrapped container
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.#ctor">
|
||||||
|
<summary>
|
||||||
|
Constructs a default <see cref="T:Prism.Unity.UnityContainerExtension" />
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.#ctor(Unity.IUnityContainer)">
|
||||||
|
<summary>
|
||||||
|
Constructs a <see cref="T:Prism.Unity.UnityContainerExtension" /> with the specified <see cref="T:Unity.IUnityContainer" />
|
||||||
|
</summary>
|
||||||
|
<param name="container"></param>
|
||||||
|
</member>
|
||||||
|
<member name="P:Prism.Unity.UnityContainerExtension.CurrentScope">
|
||||||
|
<summary>
|
||||||
|
Gets the current <see cref="T:Prism.Ioc.IScopedProvider"/>
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.FinalizeExtension">
|
||||||
|
<summary>
|
||||||
|
Used to perform any final steps for configuring the extension that may be required by the container.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.RegisterInstance(System.Type,System.Object)">
|
||||||
|
<summary>
|
||||||
|
Registers an instance of a given <see cref="T:System.Type"/>
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type"/> that is being registered</param>
|
||||||
|
<param name="instance">The instance of the service or <see cref="T:System.Type" /></param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.RegisterInstance(System.Type,System.Object,System.String)">
|
||||||
|
<summary>
|
||||||
|
Registers an instance of a given <see cref="T:System.Type"/> with the specified name or key
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type"/> that is being registered</param>
|
||||||
|
<param name="instance">The instance of the service or <see cref="T:System.Type" /></param>
|
||||||
|
<param name="name">The name or key to register the service</param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.RegisterSingleton(System.Type,System.Type)">
|
||||||
|
<summary>
|
||||||
|
Registers a Singleton with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
|
||||||
|
</summary>
|
||||||
|
<param name="from">The service <see cref="T:System.Type" /></param>
|
||||||
|
<param name="to">The implementation <see cref="T:System.Type" /></param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.RegisterSingleton(System.Type,System.Type,System.String)">
|
||||||
|
<summary>
|
||||||
|
Registers a Singleton with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
|
||||||
|
</summary>
|
||||||
|
<param name="from">The service <see cref="T:System.Type" /></param>
|
||||||
|
<param name="to">The implementation <see cref="T:System.Type" /></param>
|
||||||
|
<param name="name">The name or key to register the service</param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.RegisterSingleton(System.Type,System.Func{System.Object})">
|
||||||
|
<summary>
|
||||||
|
Registers a Singleton with the given service <see cref="T:System.Type" /> factory delegate method.
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||||
|
<param name="factoryMethod">The delegate method.</param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.RegisterSingleton(System.Type,System.Func{Prism.Ioc.IContainerProvider,System.Object})">
|
||||||
|
<summary>
|
||||||
|
Registers a Singleton with the given service <see cref="T:System.Type" /> factory delegate method.
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||||
|
<param name="factoryMethod">The delegate method using <see cref="T:Prism.Ioc.IContainerProvider"/>.</param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.RegisterManySingleton(System.Type,System.Type[])">
|
||||||
|
<summary>
|
||||||
|
Registers a Singleton Service which implements service interfaces
|
||||||
|
</summary>
|
||||||
|
<param name="type">The implementation <see cref="T:System.Type" />.</param>
|
||||||
|
<param name="serviceTypes">The service <see cref="T:System.Type"/>'s.</param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
<remarks>Registers all interfaces if none are specified.</remarks>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.Register(System.Type,System.Type)">
|
||||||
|
<summary>
|
||||||
|
Registers a Transient with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
|
||||||
|
</summary>
|
||||||
|
<param name="from">The service <see cref="T:System.Type" /></param>
|
||||||
|
<param name="to">The implementation <see cref="T:System.Type" /></param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.Register(System.Type,System.Type,System.String)">
|
||||||
|
<summary>
|
||||||
|
Registers a Transient with the given service and mapping to the specified implementation <see cref="T:System.Type" />.
|
||||||
|
</summary>
|
||||||
|
<param name="from">The service <see cref="T:System.Type" /></param>
|
||||||
|
<param name="to">The implementation <see cref="T:System.Type" /></param>
|
||||||
|
<param name="name">The name or key to register the service</param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.Register(System.Type,System.Func{System.Object})">
|
||||||
|
<summary>
|
||||||
|
Registers a Transient Service using a delegate method
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||||
|
<param name="factoryMethod">The delegate method.</param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.Register(System.Type,System.Func{Prism.Ioc.IContainerProvider,System.Object})">
|
||||||
|
<summary>
|
||||||
|
Registers a Transient Service using a delegate method
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||||
|
<param name="factoryMethod">The delegate method using <see cref="T:Prism.Ioc.IContainerProvider"/>.</param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.RegisterMany(System.Type,System.Type[])">
|
||||||
|
<summary>
|
||||||
|
Registers a Transient Service which implements service interfaces
|
||||||
|
</summary>
|
||||||
|
<param name="type">The implementing <see cref="T:System.Type" />.</param>
|
||||||
|
<param name="serviceTypes">The service <see cref="T:System.Type"/>'s.</param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
<remarks>Registers all interfaces if none are specified.</remarks>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.RegisterScoped(System.Type,System.Type)">
|
||||||
|
<summary>
|
||||||
|
Registers a scoped service
|
||||||
|
</summary>
|
||||||
|
<param name="from">The service <see cref="T:System.Type" /></param>
|
||||||
|
<param name="to">The implementation <see cref="T:System.Type" /></param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.RegisterScoped(System.Type,System.Func{System.Object})">
|
||||||
|
<summary>
|
||||||
|
Registers a scoped service using a delegate method.
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||||
|
<param name="factoryMethod">The delegate method.</param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.RegisterScoped(System.Type,System.Func{Prism.Ioc.IContainerProvider,System.Object})">
|
||||||
|
<summary>
|
||||||
|
Registers a scoped service using a delegate method.
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type"/>.</param>
|
||||||
|
<param name="factoryMethod">The delegate method.</param>
|
||||||
|
<returns>The <see cref="T:Prism.Ioc.IContainerRegistry" /> instance</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.Resolve(System.Type)">
|
||||||
|
<summary>
|
||||||
|
Resolves a given <see cref="T:System.Type"/>
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type"/></param>
|
||||||
|
<returns>The resolved Service <see cref="T:System.Type"/></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.Resolve(System.Type,System.String)">
|
||||||
|
<summary>
|
||||||
|
Resolves a given <see cref="T:System.Type"/>
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type"/></param>
|
||||||
|
<param name="name">The service name/key used when registering the <see cref="T:System.Type"/></param>
|
||||||
|
<returns>The resolved Service <see cref="T:System.Type"/></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.Resolve(System.Type,System.ValueTuple{System.Type,System.Object}[])">
|
||||||
|
<summary>
|
||||||
|
Resolves a given <see cref="T:System.Type"/>
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type"/></param>
|
||||||
|
<param name="parameters">Typed parameters to use when resolving the Service</param>
|
||||||
|
<returns>The resolved Service <see cref="T:System.Type"/></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.Resolve(System.Type,System.String,System.ValueTuple{System.Type,System.Object}[])">
|
||||||
|
<summary>
|
||||||
|
Resolves a given <see cref="T:System.Type"/>
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type"/></param>
|
||||||
|
<param name="name">The service name/key used when registering the <see cref="T:System.Type"/></param>
|
||||||
|
<param name="parameters">Typed parameters to use when resolving the Service</param>
|
||||||
|
<returns>The resolved Service <see cref="T:System.Type"/></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.IsRegistered(System.Type)">
|
||||||
|
<summary>
|
||||||
|
Determines if a given service is registered
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||||
|
<returns><c>true</c> if the service is registered.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.IsRegistered(System.Type,System.String)">
|
||||||
|
<summary>
|
||||||
|
Determines if a given service is registered with the specified name
|
||||||
|
</summary>
|
||||||
|
<param name="type">The service <see cref="T:System.Type" /></param>
|
||||||
|
<param name="name">The service name or key used</param>
|
||||||
|
<returns><c>true</c> if the service is registered.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.CreateScope">
|
||||||
|
<summary>
|
||||||
|
Creates a new Scope
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Prism.Unity.UnityContainerExtension.CreateScopeInternal">
|
||||||
|
<summary>
|
||||||
|
Creates a new Scope and provides the updated ServiceProvider
|
||||||
|
</summary>
|
||||||
|
<returns>A child <see cref="T:Unity.IUnityContainer" />.</returns>
|
||||||
|
<remarks>
|
||||||
|
This should be called by custom implementations that Implement IServiceScopeFactory
|
||||||
|
</remarks>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Wpf.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Wpf.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Wpf.pdb
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Wpf.pdb
Normal file
Binary file not shown.
5209
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Wpf.xml
Normal file
5209
newFront/c#前端/SWS.Commons/bin/Debug/Prism.Wpf.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.pdb
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Prism.pdb
Normal file
Binary file not shown.
3445
newFront/c#前端/SWS.Commons/bin/Debug/Prism.xml
Normal file
3445
newFront/c#前端/SWS.Commons/bin/Debug/Prism.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
newFront/c#前端/SWS.Commons/bin/Debug/SWS.Commons.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/SWS.Commons.dll
Normal file
Binary file not shown.
31
newFront/c#前端/SWS.Commons/bin/Debug/SWS.Commons.dll.config
Normal file
31
newFront/c#前端/SWS.Commons/bin/Debug/SWS.Commons.dll.config
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<runtime>
|
||||||
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="Prism.Wpf" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-9.0.537.60525" newVersion="9.0.537.60525" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="Prism" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-9.0.537.60525" newVersion="9.0.537.60525" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="DryIoc" publicKeyToken="dfbf2bd50fcf7768" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-5.4.3.0" newVersion="5.4.3.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="Prism.Container.Abstractions" publicKeyToken="40ee6c3a2184dc59" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-9.0.106.9543" newVersion="9.0.106.9543" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-8.0.0.1" newVersion="8.0.0.1" />
|
||||||
|
</dependentAssembly>
|
||||||
|
</assemblyBinding>
|
||||||
|
</runtime>
|
||||||
|
</configuration>
|
BIN
newFront/c#前端/SWS.Commons/bin/Debug/SWS.Commons.pdb
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/SWS.Commons.pdb
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/bin/Debug/SWS.Model.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/SWS.Model.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/bin/Debug/SWS.Model.pdb
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/SWS.Model.pdb
Normal file
Binary file not shown.
Binary file not shown.
@ -0,0 +1,200 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?><doc>
|
||||||
|
<assembly>
|
||||||
|
<name>System.Runtime.CompilerServices.Unsafe</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="T:System.Runtime.CompilerServices.Unsafe">
|
||||||
|
<summary>Contains generic, low-level functionality for manipulating pointers.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(``0@,System.Int32)">
|
||||||
|
<summary>Adds an element offset to the given reference.</summary>
|
||||||
|
<param name="source">The reference to add the offset to.</param>
|
||||||
|
<param name="elementOffset">The offset to add.</param>
|
||||||
|
<typeparam name="T">The type of reference.</typeparam>
|
||||||
|
<returns>A new reference that reflects the addition of offset to pointer.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(``0@,System.IntPtr)">
|
||||||
|
<summary>Adds an element offset to the given reference.</summary>
|
||||||
|
<param name="source">The reference to add the offset to.</param>
|
||||||
|
<param name="elementOffset">The offset to add.</param>
|
||||||
|
<typeparam name="T">The type of reference.</typeparam>
|
||||||
|
<returns>A new reference that reflects the addition of offset to pointer.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.AddByteOffset``1(``0@,System.IntPtr)">
|
||||||
|
<summary>Adds a byte offset to the given reference.</summary>
|
||||||
|
<param name="source">The reference to add the offset to.</param>
|
||||||
|
<param name="byteOffset">The offset to add.</param>
|
||||||
|
<typeparam name="T">The type of reference.</typeparam>
|
||||||
|
<returns>A new reference that reflects the addition of byte offset to pointer.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.AreSame``1(``0@,``0@)">
|
||||||
|
<summary>Determines whether the specified references point to the same location.</summary>
|
||||||
|
<param name="left">The first reference to compare.</param>
|
||||||
|
<param name="right">The second reference to compare.</param>
|
||||||
|
<typeparam name="T">The type of reference.</typeparam>
|
||||||
|
<returns>true if <paramref name="left">left</paramref> and <paramref name="right">right</paramref> point to the same location; otherwise, false.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.As``1(System.Object)">
|
||||||
|
<summary>Casts the given object to the specified type.</summary>
|
||||||
|
<param name="o">The object to cast.</param>
|
||||||
|
<typeparam name="T">The type which the object will be cast to.</typeparam>
|
||||||
|
<returns>The original object, casted to the given type.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.As``2(``0@)">
|
||||||
|
<summary>Reinterprets the given reference as a reference to a value of type <typeparamref name="TTo">TTo</typeparamref>.</summary>
|
||||||
|
<param name="source">The reference to reinterpret.</param>
|
||||||
|
<typeparam name="TFrom">The type of reference to reinterpret..</typeparam>
|
||||||
|
<typeparam name="TTo">The desired type of the reference.</typeparam>
|
||||||
|
<returns>A reference to a value of type <typeparamref name="TTo">TTo</typeparamref>.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.AsPointer``1(``0@)">
|
||||||
|
<summary>Returns a pointer to the given by-ref parameter.</summary>
|
||||||
|
<param name="value">The object whose pointer is obtained.</param>
|
||||||
|
<typeparam name="T">The type of object.</typeparam>
|
||||||
|
<returns>A pointer to the given value.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.AsRef``1(System.Void*)">
|
||||||
|
<summary>Reinterprets the given location as a reference to a value of type <typeparamref name="T">T</typeparamref>.</summary>
|
||||||
|
<param name="source">The location of the value to reference.</param>
|
||||||
|
<typeparam name="T">The type of the interpreted location.</typeparam>
|
||||||
|
<returns>A reference to a value of type <typeparamref name="T">T</typeparamref>.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.ByteOffset``1(``0@,``0@)">
|
||||||
|
<summary>Determines the byte offset from origin to target from the given references.</summary>
|
||||||
|
<param name="origin">The reference to origin.</param>
|
||||||
|
<param name="target">The reference to target.</param>
|
||||||
|
<typeparam name="T">The type of reference.</typeparam>
|
||||||
|
<returns>Byte offset from origin to target i.e. <paramref name="target">target</paramref> - <paramref name="origin">origin</paramref>.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.Copy``1(System.Void*,``0@)">
|
||||||
|
<summary>Copies a value of type <typeparamref name="T">T</typeparamref> to the given location.</summary>
|
||||||
|
<param name="destination">The location to copy to.</param>
|
||||||
|
<param name="source">A reference to the value to copy.</param>
|
||||||
|
<typeparam name="T">The type of value to copy.</typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.Copy``1(``0@,System.Void*)">
|
||||||
|
<summary>Copies a value of type <typeparamref name="T">T</typeparamref> to the given location.</summary>
|
||||||
|
<param name="destination">The location to copy to.</param>
|
||||||
|
<param name="source">A pointer to the value to copy.</param>
|
||||||
|
<typeparam name="T">The type of value to copy.</typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Byte@,System.Byte@,System.UInt32)">
|
||||||
|
<summary>Copies bytes from the source address to the destination address.</summary>
|
||||||
|
<param name="destination">The destination address to copy to.</param>
|
||||||
|
<param name="source">The source address to copy from.</param>
|
||||||
|
<param name="byteCount">The number of bytes to copy.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Void*,System.Void*,System.UInt32)">
|
||||||
|
<summary>Copies bytes from the source address to the destination address.</summary>
|
||||||
|
<param name="destination">The destination address to copy to.</param>
|
||||||
|
<param name="source">The source address to copy from.</param>
|
||||||
|
<param name="byteCount">The number of bytes to copy.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Void*,System.Void*,System.UInt32)">
|
||||||
|
<summary>Copies bytes from the source address to the destination address
|
||||||
|
without assuming architecture dependent alignment of the addresses.</summary>
|
||||||
|
<param name="destination">The destination address to copy to.</param>
|
||||||
|
<param name="source">The source address to copy from.</param>
|
||||||
|
<param name="byteCount">The number of bytes to copy.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Byte@,System.Byte@,System.UInt32)">
|
||||||
|
<summary>Copies bytes from the source address to the destination address
|
||||||
|
without assuming architecture dependent alignment of the addresses.</summary>
|
||||||
|
<param name="destination">The destination address to copy to.</param>
|
||||||
|
<param name="source">The source address to copy from.</param>
|
||||||
|
<param name="byteCount">The number of bytes to copy.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlock(System.Byte@,System.Byte,System.UInt32)">
|
||||||
|
<summary>Initializes a block of memory at the given location with a given initial value.</summary>
|
||||||
|
<param name="startAddress">The address of the start of the memory block to initialize.</param>
|
||||||
|
<param name="value">The value to initialize the block to.</param>
|
||||||
|
<param name="byteCount">The number of bytes to initialize.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlock(System.Void*,System.Byte,System.UInt32)">
|
||||||
|
<summary>Initializes a block of memory at the given location with a given initial value.</summary>
|
||||||
|
<param name="startAddress">The address of the start of the memory block to initialize.</param>
|
||||||
|
<param name="value">The value to initialize the block to.</param>
|
||||||
|
<param name="byteCount">The number of bytes to initialize.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Byte@,System.Byte,System.UInt32)">
|
||||||
|
<summary>Initializes a block of memory at the given location with a given initial value
|
||||||
|
without assuming architecture dependent alignment of the address.</summary>
|
||||||
|
<param name="startAddress">The address of the start of the memory block to initialize.</param>
|
||||||
|
<param name="value">The value to initialize the block to.</param>
|
||||||
|
<param name="byteCount">The number of bytes to initialize.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Void*,System.Byte,System.UInt32)">
|
||||||
|
<summary>Initializes a block of memory at the given location with a given initial value
|
||||||
|
without assuming architecture dependent alignment of the address.</summary>
|
||||||
|
<param name="startAddress">The address of the start of the memory block to initialize.</param>
|
||||||
|
<param name="value">The value to initialize the block to.</param>
|
||||||
|
<param name="byteCount">The number of bytes to initialize.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.Read``1(System.Void*)">
|
||||||
|
<summary>Reads a value of type <typeparamref name="T">T</typeparamref> from the given location.</summary>
|
||||||
|
<param name="source">The location to read from.</param>
|
||||||
|
<typeparam name="T">The type to read.</typeparam>
|
||||||
|
<returns>An object of type <typeparamref name="T">T</typeparamref> read from the given location.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.ReadUnaligned``1(System.Byte@)">
|
||||||
|
<summary>Reads a value of type <typeparamref name="T">T</typeparamref> from the given location
|
||||||
|
without assuming architecture dependent alignment of the addresses.</summary>
|
||||||
|
<param name="source">The location to read from.</param>
|
||||||
|
<typeparam name="T">The type to read.</typeparam>
|
||||||
|
<returns>An object of type <typeparamref name="T">T</typeparamref> read from the given location.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.ReadUnaligned``1(System.Void*)">
|
||||||
|
<summary>Reads a value of type <typeparamref name="T">T</typeparamref> from the given location
|
||||||
|
without assuming architecture dependent alignment of the addresses.</summary>
|
||||||
|
<param name="source">The location to read from.</param>
|
||||||
|
<typeparam name="T">The type to read.</typeparam>
|
||||||
|
<returns>An object of type <typeparamref name="T">T</typeparamref> read from the given location.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.SizeOf``1">
|
||||||
|
<summary>Returns the size of an object of the given type parameter.</summary>
|
||||||
|
<typeparam name="T">The type of object whose size is retrieved.</typeparam>
|
||||||
|
<returns>The size of an object of type <typeparamref name="T">T</typeparamref>.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(``0@,System.Int32)">
|
||||||
|
<summary>Subtracts an element offset from the given reference.</summary>
|
||||||
|
<param name="source">The reference to subtract the offset from.</param>
|
||||||
|
<param name="elementOffset">The offset to subtract.</param>
|
||||||
|
<typeparam name="T">The type of reference.</typeparam>
|
||||||
|
<returns>A new reference that reflects the subraction of offset from pointer.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(``0@,System.IntPtr)">
|
||||||
|
<summary>Subtracts an element offset from the given reference.</summary>
|
||||||
|
<param name="source">The reference to subtract the offset from.</param>
|
||||||
|
<param name="elementOffset">The offset to subtract.</param>
|
||||||
|
<typeparam name="T">The type of reference.</typeparam>
|
||||||
|
<returns>A new reference that reflects the subraction of offset from pointer.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.SubtractByteOffset``1(``0@,System.IntPtr)">
|
||||||
|
<summary>Subtracts a byte offset from the given reference.</summary>
|
||||||
|
<param name="source">The reference to subtract the offset from.</param>
|
||||||
|
<param name="byteOffset"></param>
|
||||||
|
<typeparam name="T">The type of reference.</typeparam>
|
||||||
|
<returns>A new reference that reflects the subraction of byte offset from pointer.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.Write``1(System.Void*,``0)">
|
||||||
|
<summary>Writes a value of type <typeparamref name="T">T</typeparamref> to the given location.</summary>
|
||||||
|
<param name="destination">The location to write to.</param>
|
||||||
|
<param name="value">The value to write.</param>
|
||||||
|
<typeparam name="T">The type of value to write.</typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.WriteUnaligned``1(System.Byte@,``0)">
|
||||||
|
<summary>Writes a value of type <typeparamref name="T">T</typeparamref> to the given location
|
||||||
|
without assuming architecture dependent alignment of the addresses.</summary>
|
||||||
|
<param name="destination">The location to write to.</param>
|
||||||
|
<param name="value">The value to write.</param>
|
||||||
|
<typeparam name="T">The type of value to write.</typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.WriteUnaligned``1(System.Void*,``0)">
|
||||||
|
<summary>Writes a value of type <typeparamref name="T">T</typeparamref> to the given location
|
||||||
|
without assuming architecture dependent alignment of the addresses.</summary>
|
||||||
|
<param name="destination">The location to write to.</param>
|
||||||
|
<param name="value">The value to write.</param>
|
||||||
|
<typeparam name="T">The type of value to write.</typeparam>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
Binary file not shown.
@ -0,0 +1,166 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?><doc>
|
||||||
|
<assembly>
|
||||||
|
<name>System.Threading.Tasks.Extensions</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="T:System.Runtime.CompilerServices.ValueTaskAwaiter`1">
|
||||||
|
<typeparam name="TResult"></typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.ValueTaskAwaiter`1.GetResult">
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Runtime.CompilerServices.ValueTaskAwaiter`1.IsCompleted">
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.ValueTaskAwaiter`1.OnCompleted(System.Action)">
|
||||||
|
<param name="continuation"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.ValueTaskAwaiter`1.UnsafeOnCompleted(System.Action)">
|
||||||
|
<param name="continuation"></param>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Threading.Tasks.ValueTask`1">
|
||||||
|
<summary>Provides a value type that wraps a <see cref="Task{TResult}"></see> and a <typeparamref name="TResult">TResult</typeparamref>, only one of which is used.</summary>
|
||||||
|
<typeparam name="TResult">The result.</typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.ValueTask`1.#ctor(System.Threading.Tasks.Task{`0})">
|
||||||
|
<summary>Initializes a new instance of the <see cref="ValueTask{TResult}"></see> class using the supplied task that represents the operation.</summary>
|
||||||
|
<param name="task">The task.</param>
|
||||||
|
<exception cref="T:System.ArgumentNullException">The <paramref name="task">task</paramref> argument is null.</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.ValueTask`1.#ctor(`0)">
|
||||||
|
<summary>Initializes a new instance of the <see cref="ValueTask{TResult}"></see> class using the supplied result of a successful operation.</summary>
|
||||||
|
<param name="result">The result.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.ValueTask`1.AsTask">
|
||||||
|
<summary>Retrieves a <see cref="Task{TResult}"></see> object that represents this <see cref="ValueTask{TResult}"></see>.</summary>
|
||||||
|
<returns>The <see cref="Task{TResult}"></see> object that is wrapped in this <see cref="ValueTask{TResult}"></see> if one exists, or a new <see cref="Task{TResult}"></see> object that represents the result.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.ValueTask`1.ConfigureAwait(System.Boolean)">
|
||||||
|
<summary>Configures an awaiter for this value.</summary>
|
||||||
|
<param name="continueOnCapturedContext">true to attempt to marshal the continuation back to the captured context; otherwise, false.</param>
|
||||||
|
<returns>The configured awaiter.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.ValueTask`1.CreateAsyncMethodBuilder">
|
||||||
|
<summary>Creates a method builder for use with an async method.</summary>
|
||||||
|
<returns>The created builder.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.ValueTask`1.Equals(System.Object)">
|
||||||
|
<summary>Determines whether the specified object is equal to the current object.</summary>
|
||||||
|
<param name="obj">The object to compare with the current object.</param>
|
||||||
|
<returns>true if the specified object is equal to the current object; otherwise, false.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.ValueTask`1.Equals(System.Threading.Tasks.ValueTask{`0})">
|
||||||
|
<summary>Determines whether the specified <see cref="ValueTask{TResult}"></see> object is equal to the current <see cref="ValueTask{TResult}"></see> object.</summary>
|
||||||
|
<param name="other">The object to compare with the current object.</param>
|
||||||
|
<returns>true if the specified object is equal to the current object; otherwise, false.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.ValueTask`1.GetAwaiter">
|
||||||
|
<summary>Creates an awaiter for this value.</summary>
|
||||||
|
<returns>The awaiter.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.ValueTask`1.GetHashCode">
|
||||||
|
<summary>Returns the hash code for this instance.</summary>
|
||||||
|
<returns>The hash code for the current object.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Threading.Tasks.ValueTask`1.IsCanceled">
|
||||||
|
<summary>Gets a value that indicates whether this object represents a canceled operation.</summary>
|
||||||
|
<returns>true if this object represents a canceled operation; otherwise, false.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Threading.Tasks.ValueTask`1.IsCompleted">
|
||||||
|
<summary>Gets a value that indicates whether this object represents a completed operation.</summary>
|
||||||
|
<returns>true if this object represents a completed operation; otherwise, false.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Threading.Tasks.ValueTask`1.IsCompletedSuccessfully">
|
||||||
|
<summary>Gets a value that indicates whether this object represents a successfully completed operation.</summary>
|
||||||
|
<returns>true if this object represents a successfully completed operation; otherwise, false.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Threading.Tasks.ValueTask`1.IsFaulted">
|
||||||
|
<summary>Gets a value that indicates whether this object represents a failed operation.</summary>
|
||||||
|
<returns>true if this object represents a failed operation; otherwise, false.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.ValueTask`1.op_Equality(System.Threading.Tasks.ValueTask{`0},System.Threading.Tasks.ValueTask{`0})">
|
||||||
|
<summary>Compares two values for equality.</summary>
|
||||||
|
<param name="left">The first value to compare.</param>
|
||||||
|
<param name="right">The second value to compare.</param>
|
||||||
|
<returns>true if the two <see cref="ValueTask{TResult}"></see> values are equal; otherwise, false.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.ValueTask`1.op_Inequality(System.Threading.Tasks.ValueTask{`0},System.Threading.Tasks.ValueTask{`0})">
|
||||||
|
<summary>Determines whether two <see cref="ValueTask{TResult}"></see> values are unequal.</summary>
|
||||||
|
<param name="left">The first value to compare.</param>
|
||||||
|
<param name="right">The seconed value to compare.</param>
|
||||||
|
<returns>true if the two <see cref="ValueTask{TResult}"></see> values are not equal; otherwise, false.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Threading.Tasks.ValueTask`1.Result">
|
||||||
|
<summary>Gets the result.</summary>
|
||||||
|
<returns>The result.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.ValueTask`1.ToString">
|
||||||
|
<summary>Returns a string that represents the current object.</summary>
|
||||||
|
<returns>A string that represents the current object.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Runtime.CompilerServices.AsyncMethodBuilderAttribute">
|
||||||
|
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.AsyncMethodBuilderAttribute.#ctor(System.Type)">
|
||||||
|
<param name="builderType"></param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Runtime.CompilerServices.AsyncMethodBuilderAttribute.BuilderType">
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1">
|
||||||
|
<typeparam name="TResult"></typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.AwaitOnCompleted``2(``0@,``1@)">
|
||||||
|
<param name="awaiter"></param>
|
||||||
|
<param name="stateMachine"></param>
|
||||||
|
<typeparam name="TAwaiter"></typeparam>
|
||||||
|
<typeparam name="TStateMachine"></typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.AwaitUnsafeOnCompleted``2(``0@,``1@)">
|
||||||
|
<param name="awaiter"></param>
|
||||||
|
<param name="stateMachine"></param>
|
||||||
|
<typeparam name="TAwaiter"></typeparam>
|
||||||
|
<typeparam name="TStateMachine"></typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.Create">
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.SetException(System.Exception)">
|
||||||
|
<param name="exception"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.SetResult(`0)">
|
||||||
|
<param name="result"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)">
|
||||||
|
<param name="stateMachine"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.Start``1(``0@)">
|
||||||
|
<param name="stateMachine"></param>
|
||||||
|
<typeparam name="TStateMachine"></typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.Task">
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter">
|
||||||
|
<typeparam name="TResult"></typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult">
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.IsCompleted">
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.OnCompleted(System.Action)">
|
||||||
|
<param name="continuation"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.UnsafeOnCompleted(System.Action)">
|
||||||
|
<param name="continuation"></param>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1">
|
||||||
|
<typeparam name="TResult"></typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.GetAwaiter">
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
BIN
newFront/c#前端/SWS.Commons/bin/Debug/System.ValueTuple.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/System.ValueTuple.dll
Normal file
Binary file not shown.
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<doc>
|
||||||
|
<assembly>
|
||||||
|
<name>System.ValueTuple</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
</members>
|
||||||
|
</doc>
|
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Telerik.Windows.Controls.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Telerik.Windows.Controls.dll
Normal file
Binary file not shown.
64656
newFront/c#前端/SWS.Commons/bin/Debug/Telerik.Windows.Controls.xml
Normal file
64656
newFront/c#前端/SWS.Commons/bin/Debug/Telerik.Windows.Controls.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Unity.Abstractions.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Unity.Abstractions.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Unity.Abstractions.pdb
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Unity.Abstractions.pdb
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Unity.Container.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Unity.Container.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Unity.Container.pdb
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/Unity.Container.pdb
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
93
newFront/c#前端/SWS.Commons/bin/Debug/log4net.config
Normal file
93
newFront/c#前端/SWS.Commons/bin/Debug/log4net.config
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<log4net >
|
||||||
|
<root>
|
||||||
|
<!-- 控制级别,由低到高:ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF -->
|
||||||
|
<level value="ALL"/>
|
||||||
|
<appender-ref ref="ErrorRollingFileAppender"/>
|
||||||
|
<appender-ref ref="WarnRollingFileAppender"/>
|
||||||
|
<appender-ref ref="InfoRollingFileAppender"/>
|
||||||
|
<appender-ref ref="DebugRollingFileAppender"/>
|
||||||
|
</root>
|
||||||
|
|
||||||
|
<!--一般错误日志定义,用于记录已知需处理的与未捕获的异常-->
|
||||||
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
|
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
|
<filter type="log4net.Filter.LevelRangeFilter">
|
||||||
|
<levelMin value="ERROR"/>
|
||||||
|
<levelMax value="FATAL"/>
|
||||||
|
</filter>
|
||||||
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
|
<file value="Logs/"/>
|
||||||
|
<appendToFile value="true"/>
|
||||||
|
<maxSizeRollBackups value="100" />
|
||||||
|
<maxFileSize value="10240" />
|
||||||
|
<rollingStyle value="Date"/>
|
||||||
|
<datePattern value="yyyy-MM-dd//"Error.log""/>
|
||||||
|
<staticLogFileName value="false"/>
|
||||||
|
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<!--警告日志定义,用于记录已知不需处理的异常,系统警告信息-->
|
||||||
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
|
<appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
|
<filter type="log4net.Filter.LevelMatchFilter">
|
||||||
|
<levelToMatch value="WARN"/>
|
||||||
|
</filter>
|
||||||
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
|
<file value="Logs/"/>
|
||||||
|
<appendToFile value="true"/>
|
||||||
|
<maxSizeRollBackups value="100" />
|
||||||
|
<maxFileSize value="10240" />
|
||||||
|
<rollingStyle value="Date"/>
|
||||||
|
<datePattern value="yyyy-MM-dd//"Warn.log""/>
|
||||||
|
<staticLogFileName value="false"/>
|
||||||
|
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t %m%n"/>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<!--信息日志定义,用于记录用户相关信息-->
|
||||||
|
<!--日志输出格式:[时间]:消息-->
|
||||||
|
<appender name="InfoRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
|
<filter type="log4net.Filter.LevelMatchFilter">
|
||||||
|
<levelToMatch value="INFO"/>
|
||||||
|
</filter>
|
||||||
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
|
<file value="Logs/"/>
|
||||||
|
<appendToFile value="true"/>
|
||||||
|
<maxSizeRollBackups value="100" />
|
||||||
|
<maxFileSize value="10240" />
|
||||||
|
<rollingStyle value="Date"/>
|
||||||
|
<datePattern value="yyyy-MM-dd//"Info.log""/>
|
||||||
|
<staticLogFileName value="false"/>
|
||||||
|
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="[%d{HH:mm:ss}] (%c) %m%n"/>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<!--信息日志定义,用于收集开发调试信息-->
|
||||||
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
|
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
|
<filter type="log4net.Filter.LevelMatchFilter">
|
||||||
|
<levelToMatch value="DEBUG"/>
|
||||||
|
</filter>
|
||||||
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
|
<file value="Logs/"/>
|
||||||
|
<appendToFile value="true"/>
|
||||||
|
<maxSizeRollBackups value="100" />
|
||||||
|
<maxFileSize value="10240" />
|
||||||
|
<rollingStyle value="Date"/>
|
||||||
|
<datePattern value="yyyy-MM-dd//"Debug.log""/>
|
||||||
|
<staticLogFileName value="false"/>
|
||||||
|
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t: %m%n"/>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
</log4net>
|
BIN
newFront/c#前端/SWS.Commons/bin/Debug/log4net.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/log4net.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/bin/Debug/log4net.pdb
Normal file
BIN
newFront/c#前端/SWS.Commons/bin/Debug/log4net.pdb
Normal file
Binary file not shown.
28302
newFront/c#前端/SWS.Commons/bin/Debug/log4net.xml
Normal file
28302
newFront/c#前端/SWS.Commons/bin/Debug/log4net.xml
Normal file
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
93
newFront/c#前端/SWS.Commons/log4net.config
Normal file
93
newFront/c#前端/SWS.Commons/log4net.config
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<log4net >
|
||||||
|
<root>
|
||||||
|
<!-- 控制级别,由低到高:ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF -->
|
||||||
|
<level value="ALL"/>
|
||||||
|
<appender-ref ref="ErrorRollingFileAppender"/>
|
||||||
|
<appender-ref ref="WarnRollingFileAppender"/>
|
||||||
|
<appender-ref ref="InfoRollingFileAppender"/>
|
||||||
|
<appender-ref ref="DebugRollingFileAppender"/>
|
||||||
|
</root>
|
||||||
|
|
||||||
|
<!--一般错误日志定义,用于记录已知需处理的与未捕获的异常-->
|
||||||
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
|
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
|
<filter type="log4net.Filter.LevelRangeFilter">
|
||||||
|
<levelMin value="ERROR"/>
|
||||||
|
<levelMax value="FATAL"/>
|
||||||
|
</filter>
|
||||||
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
|
<file value="Logs/"/>
|
||||||
|
<appendToFile value="true"/>
|
||||||
|
<maxSizeRollBackups value="100" />
|
||||||
|
<maxFileSize value="10240" />
|
||||||
|
<rollingStyle value="Date"/>
|
||||||
|
<datePattern value="yyyy-MM-dd//"Error.log""/>
|
||||||
|
<staticLogFileName value="false"/>
|
||||||
|
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<!--警告日志定义,用于记录已知不需处理的异常,系统警告信息-->
|
||||||
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
|
<appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
|
<filter type="log4net.Filter.LevelMatchFilter">
|
||||||
|
<levelToMatch value="WARN"/>
|
||||||
|
</filter>
|
||||||
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
|
<file value="Logs/"/>
|
||||||
|
<appendToFile value="true"/>
|
||||||
|
<maxSizeRollBackups value="100" />
|
||||||
|
<maxFileSize value="10240" />
|
||||||
|
<rollingStyle value="Date"/>
|
||||||
|
<datePattern value="yyyy-MM-dd//"Warn.log""/>
|
||||||
|
<staticLogFileName value="false"/>
|
||||||
|
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t %m%n"/>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<!--信息日志定义,用于记录用户相关信息-->
|
||||||
|
<!--日志输出格式:[时间]:消息-->
|
||||||
|
<appender name="InfoRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
|
<filter type="log4net.Filter.LevelMatchFilter">
|
||||||
|
<levelToMatch value="INFO"/>
|
||||||
|
</filter>
|
||||||
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
|
<file value="Logs/"/>
|
||||||
|
<appendToFile value="true"/>
|
||||||
|
<maxSizeRollBackups value="100" />
|
||||||
|
<maxFileSize value="10240" />
|
||||||
|
<rollingStyle value="Date"/>
|
||||||
|
<datePattern value="yyyy-MM-dd//"Info.log""/>
|
||||||
|
<staticLogFileName value="false"/>
|
||||||
|
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="[%d{HH:mm:ss}] (%c) %m%n"/>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<!--信息日志定义,用于收集开发调试信息-->
|
||||||
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
|
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
|
<filter type="log4net.Filter.LevelMatchFilter">
|
||||||
|
<levelToMatch value="DEBUG"/>
|
||||||
|
</filter>
|
||||||
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
|
<file value="Logs/"/>
|
||||||
|
<appendToFile value="true"/>
|
||||||
|
<maxSizeRollBackups value="100" />
|
||||||
|
<maxFileSize value="10240" />
|
||||||
|
<rollingStyle value="Date"/>
|
||||||
|
<datePattern value="yyyy-MM-dd//"Debug.log""/>
|
||||||
|
<staticLogFileName value="false"/>
|
||||||
|
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t: %m%n"/>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
</log4net>
|
@ -0,0 +1,4 @@
|
|||||||
|
// <autogenerated />
|
||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@
|
|||||||
|
42c43b4a66e8d45e078c86c61aaca78db4ff6f419ade1145e731c58127ec54f4
|
@ -0,0 +1,57 @@
|
|||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\log4net.config
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\SWS.Commons.dll.config
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\SWS.Commons.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\SWS.Commons.pdb
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\DryIoc.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\INIFileParser.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\log4net.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Microsoft.Bcl.AsyncInterfaces.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Microsoft.Extensions.DependencyInjection.Abstractions.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Microsoft.Xaml.Behaviors.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Newtonsoft.Json.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.DryIoc.Wpf.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.Unity.Wpf.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.Wpf.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\SWS.Model.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\System.Runtime.CompilerServices.Unsafe.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\System.Threading.Tasks.Extensions.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\System.ValueTuple.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Telerik.Windows.Controls.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Unity.Abstractions.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Unity.Container.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\SWS.Model.pdb
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\DryIoc.xml
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\INIFileParser.xml
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\log4net.pdb
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\log4net.xml
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Microsoft.Bcl.AsyncInterfaces.xml
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Microsoft.Extensions.DependencyInjection.Abstractions.xml
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Microsoft.Xaml.Behaviors.pdb
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Microsoft.Xaml.Behaviors.xml
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Newtonsoft.Json.xml
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.pdb
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.xml
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.DryIoc.Wpf.pdb
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.DryIoc.Wpf.xml
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.Unity.Wpf.pdb
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.Unity.Wpf.xml
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.Wpf.pdb
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Prism.Wpf.xml
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\System.Threading.Tasks.Extensions.xml
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\System.ValueTuple.xml
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Telerik.Windows.Controls.xml
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Unity.Abstractions.pdb
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\Unity.Container.pdb
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\de\Telerik.Windows.Controls.resources.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\es\Telerik.Windows.Controls.resources.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\fr\Telerik.Windows.Controls.resources.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\it\Telerik.Windows.Controls.resources.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\nl\Telerik.Windows.Controls.resources.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\bin\Debug\tr\Telerik.Windows.Controls.resources.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\obj\Debug\SWS.Commons.csproj.AssemblyReference.cache
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\obj\Debug\SWS.Commons.csproj.CoreCompileInputs.cache
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\obj\Debug\SWS.Comm.9AB1BE43.Up2Date
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\obj\Debug\SWS.Commons.dll
|
||||||
|
E:\Di-Electrical\c#前端\SWS.Commons\obj\Debug\SWS.Commons.pdb
|
BIN
newFront/c#前端/SWS.Commons/obj/Debug/SWS.Commons.dll
Normal file
BIN
newFront/c#前端/SWS.Commons/obj/Debug/SWS.Commons.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.Commons/obj/Debug/SWS.Commons.pdb
Normal file
BIN
newFront/c#前端/SWS.Commons/obj/Debug/SWS.Commons.pdb
Normal file
Binary file not shown.
17
newFront/c#前端/SWS.Commons/packages.config
Normal file
17
newFront/c#前端/SWS.Commons/packages.config
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="DryIoc.dll" version="4.7.7" targetFramework="net48" />
|
||||||
|
<package id="log4net" version="3.1.0" targetFramework="net48" />
|
||||||
|
<package id="Microsoft.Bcl.AsyncInterfaces" version="8.0.0" targetFramework="net48" />
|
||||||
|
<package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="8.0.1" targetFramework="net48" />
|
||||||
|
<package id="Microsoft.Xaml.Behaviors.Wpf" version="1.1.122" targetFramework="net48" />
|
||||||
|
<package id="Prism.Core" version="8.1.97" targetFramework="net48" />
|
||||||
|
<package id="Prism.DryIoc" version="8.1.97" targetFramework="net48" />
|
||||||
|
<package id="Prism.Unity" version="8.1.97" targetFramework="net48" />
|
||||||
|
<package id="Prism.Wpf" version="8.1.97" targetFramework="net48" />
|
||||||
|
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.3" targetFramework="net48" />
|
||||||
|
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net48" />
|
||||||
|
<package id="System.ValueTuple" version="4.5.0" targetFramework="net48" />
|
||||||
|
<package id="Unity.Abstractions" version="5.11.7" targetFramework="net48" />
|
||||||
|
<package id="Unity.Container" version="5.11.11" targetFramework="net48" />
|
||||||
|
</packages>
|
File diff suppressed because one or more lines are too long
79
newFront/c#前端/SWS.CustomControl/IconButton/IconButton.cs
Normal file
79
newFront/c#前端/SWS.CustomControl/IconButton/IconButton.cs
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Controls;
|
||||||
|
using System.Windows.Media;
|
||||||
|
using System.Windows.Shapes;
|
||||||
|
|
||||||
|
namespace SWS.CustomControl
|
||||||
|
{
|
||||||
|
[TemplatePart(Name = "PART_Icon", Type = typeof(Path))]
|
||||||
|
[TemplatePart(Name = "PART_Content", Type = typeof(ContentPresenter))]
|
||||||
|
public class IconButton : Button
|
||||||
|
{
|
||||||
|
static IconButton()
|
||||||
|
{
|
||||||
|
DefaultStyleKeyProperty.OverrideMetadata(
|
||||||
|
typeof(IconButton),
|
||||||
|
new FrameworkPropertyMetadata(typeof(IconButton)));
|
||||||
|
}
|
||||||
|
|
||||||
|
#region 依赖属性
|
||||||
|
// 矢量路径数据
|
||||||
|
public static readonly DependencyProperty IconDataProperty =
|
||||||
|
DependencyProperty.Register(
|
||||||
|
"IconData",
|
||||||
|
typeof(Geometry),
|
||||||
|
typeof(IconButton),
|
||||||
|
new FrameworkPropertyMetadata(null));
|
||||||
|
|
||||||
|
// 图标尺寸
|
||||||
|
public static readonly DependencyProperty IconSizeProperty =
|
||||||
|
DependencyProperty.Register(
|
||||||
|
"IconSize",
|
||||||
|
typeof(double),
|
||||||
|
typeof(IconButton),
|
||||||
|
new FrameworkPropertyMetadata(16.0));
|
||||||
|
|
||||||
|
// 图标位置
|
||||||
|
public static readonly DependencyProperty IconPlacementProperty =
|
||||||
|
DependencyProperty.Register(
|
||||||
|
"IconPlacement",
|
||||||
|
typeof(Dock),
|
||||||
|
typeof(IconButton),
|
||||||
|
new FrameworkPropertyMetadata(Dock.Left));
|
||||||
|
|
||||||
|
// 图标与文字间距
|
||||||
|
public static readonly DependencyProperty IconMarginProperty =
|
||||||
|
DependencyProperty.Register(
|
||||||
|
"IconMargin",
|
||||||
|
typeof(Thickness),
|
||||||
|
typeof(IconButton),
|
||||||
|
new FrameworkPropertyMetadata(new Thickness(0, 0, 5, 0)));
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 属性包装器
|
||||||
|
public Geometry IconData
|
||||||
|
{
|
||||||
|
get => (Geometry)GetValue(IconDataProperty);
|
||||||
|
set => SetValue(IconDataProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public double IconSize
|
||||||
|
{
|
||||||
|
get => (double)GetValue(IconSizeProperty);
|
||||||
|
set => SetValue(IconSizeProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Dock IconPlacement
|
||||||
|
{
|
||||||
|
get => (Dock)GetValue(IconPlacementProperty);
|
||||||
|
set => SetValue(IconPlacementProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Thickness IconMargin
|
||||||
|
{
|
||||||
|
get => (Thickness)GetValue(IconMarginProperty);
|
||||||
|
set => SetValue(IconMarginProperty, value);
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Windows.Data;
|
||||||
|
using SWS.Model;
|
||||||
|
|
||||||
|
namespace SWS.CustomControl
|
||||||
|
{
|
||||||
|
public class CollectionToStringConverter : IValueConverter
|
||||||
|
{
|
||||||
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
ObservableCollection<ec_dataitemdetail> WHCPUs = value as ObservableCollection<ec_dataitemdetail>;
|
||||||
|
if (WHCPUs != null)
|
||||||
|
{
|
||||||
|
string sWHCPU = "";
|
||||||
|
for (int i = 0; i < WHCPUs.Count; i++)
|
||||||
|
{
|
||||||
|
if (i!= WHCPUs.Count-1)
|
||||||
|
{
|
||||||
|
if (WHCPUs[i] != null)
|
||||||
|
{
|
||||||
|
sWHCPU = sWHCPU + WHCPUs[i].DataItemCode + "|";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (WHCPUs[i] != null)
|
||||||
|
{
|
||||||
|
sWHCPU = sWHCPU + WHCPUs[i].DataItemCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sWHCPU;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,60 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace SWS.CustomControl
|
||||||
|
{
|
||||||
|
|
||||||
|
public static class DoubleUtil
|
||||||
|
{
|
||||||
|
internal const double DBL_EPSILON = 2.2204460492503131e-016; /* smallest such that 1.0+DBL_EPSILON != 1.0 */
|
||||||
|
internal const float FLT_MIN = 1.175494351e-38F; /* Number close to zero, where float.MinValue is -float.MaxValue */
|
||||||
|
|
||||||
|
|
||||||
|
public static bool IsZero(double value) => Math.Abs(value) < 10.0 * DBL_EPSILON;
|
||||||
|
|
||||||
|
public static bool AreClose(double value1, double value2)
|
||||||
|
{
|
||||||
|
if (value1 == value2) return true;
|
||||||
|
double eps = (Math.Abs(value1) + Math.Abs(value2) + 10.0) * DBL_EPSILON;
|
||||||
|
double delta = value1 - value2;
|
||||||
|
return (-eps < delta) && (eps > delta);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool LessThan(double value1, double value2) => (value1 < value2) && !AreClose(value1, value2);
|
||||||
|
|
||||||
|
public static bool GreaterThan(double value1, double value2) => (value1 > value2) && !AreClose(value1, value2);
|
||||||
|
|
||||||
|
public static bool LessThanOrClose(double value1, double value2) => (value1 < value2) || AreClose(value1, value2);
|
||||||
|
|
||||||
|
public static bool GreaterThanOrClose(double value1, double value2) => (value1 > value2) || AreClose(value1, value2);
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Explicit)]
|
||||||
|
private struct NanUnion
|
||||||
|
{
|
||||||
|
[FieldOffset(0)]
|
||||||
|
internal double DoubleValue;
|
||||||
|
[FieldOffset(0)]
|
||||||
|
internal UInt64 UintValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsNaN(double value)
|
||||||
|
{
|
||||||
|
NanUnion t = new NanUnion();
|
||||||
|
t.DoubleValue = value;
|
||||||
|
|
||||||
|
UInt64 exp = t.UintValue & 0xfff0000000000000;
|
||||||
|
UInt64 man = t.UintValue & 0x000fffffffffffff;
|
||||||
|
|
||||||
|
return (exp == 0x7ff0000000000000 || exp == 0xfff0000000000000) && (man != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsOne(double value)
|
||||||
|
{
|
||||||
|
return Math.Abs(value - 1.0) < 10.0 * DBL_EPSILON;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,113 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Controls;
|
||||||
|
using System.Windows;
|
||||||
|
|
||||||
|
namespace SWS.CustomControl
|
||||||
|
{
|
||||||
|
public class ElementHelper : DependencyObject
|
||||||
|
{
|
||||||
|
public static readonly DependencyProperty CornerRadiusProperty =
|
||||||
|
DependencyProperty.RegisterAttached("CornerRadius", typeof(CornerRadius), typeof(ElementHelper),
|
||||||
|
new PropertyMetadata(new CornerRadius(0)));
|
||||||
|
|
||||||
|
public static readonly DependencyProperty WatermarkProperty =
|
||||||
|
DependencyProperty.RegisterAttached("Watermark", typeof(string), typeof(ElementHelper),
|
||||||
|
new PropertyMetadata(string.Empty));
|
||||||
|
|
||||||
|
public static readonly DependencyProperty IsStripeProperty =
|
||||||
|
DependencyProperty.RegisterAttached("IsStripe", typeof(bool), typeof(ElementHelper),
|
||||||
|
new PropertyMetadata(false));
|
||||||
|
|
||||||
|
public static readonly DependencyProperty IsRoundProperty =
|
||||||
|
DependencyProperty.RegisterAttached("IsRound", typeof(bool), typeof(ElementHelper),
|
||||||
|
new PropertyMetadata(false));
|
||||||
|
|
||||||
|
public static readonly DependencyProperty IsClearProperty =
|
||||||
|
DependencyProperty.RegisterAttached("IsClear", typeof(bool), typeof(ElementHelper),
|
||||||
|
new PropertyMetadata(false, OnIsClearChanged));
|
||||||
|
|
||||||
|
public static CornerRadius GetCornerRadius(DependencyObject obj)
|
||||||
|
{
|
||||||
|
return (CornerRadius)obj.GetValue(CornerRadiusProperty);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetCornerRadius(DependencyObject obj, CornerRadius value)
|
||||||
|
{
|
||||||
|
obj.SetValue(CornerRadiusProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetWatermark(DependencyObject obj)
|
||||||
|
{
|
||||||
|
return (string)obj.GetValue(WatermarkProperty);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetWatermark(DependencyObject obj, string value)
|
||||||
|
{
|
||||||
|
obj.SetValue(WatermarkProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool GetIsStripe(DependencyObject obj)
|
||||||
|
{
|
||||||
|
return (bool)obj.GetValue(IsStripeProperty);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetIsStripe(DependencyObject obj, bool value)
|
||||||
|
{
|
||||||
|
obj.SetValue(IsStripeProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool GetIsRound(DependencyObject obj)
|
||||||
|
{
|
||||||
|
return (bool)obj.GetValue(IsRoundProperty);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetIsRound(DependencyObject obj, bool value)
|
||||||
|
{
|
||||||
|
obj.SetValue(IsRoundProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetIsClear(UIElement element, bool value)
|
||||||
|
{
|
||||||
|
element.SetValue(IsClearProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool GetIsClear(UIElement element)
|
||||||
|
{
|
||||||
|
return (bool)element.GetValue(IsClearProperty);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void OnIsClearChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
var button = d as Button;
|
||||||
|
if (button != null)
|
||||||
|
{
|
||||||
|
if ((bool)e.NewValue)
|
||||||
|
button.Click += ButtonClear_Click;
|
||||||
|
else
|
||||||
|
button.Click -= ButtonClear_Click;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void ButtonClear_Click(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
if (sender is Button button)
|
||||||
|
{
|
||||||
|
if (button.TemplatedParent is TextBox textBox)
|
||||||
|
textBox.Clear();
|
||||||
|
else if (button.TemplatedParent is PasswordBox passwordBox)
|
||||||
|
passwordBox.Clear();
|
||||||
|
else if (button.TemplatedParent is TabItem tabItem)
|
||||||
|
{
|
||||||
|
var tabControl = tabItem.Parent as TabControl;
|
||||||
|
if (tabControl != null)
|
||||||
|
tabControl.Items.Remove(tabItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,155 @@
|
|||||||
|
using System;
|
||||||
|
using System.Windows.Media;
|
||||||
|
using System.Windows;
|
||||||
|
|
||||||
|
namespace SWS.CustomControl
|
||||||
|
{
|
||||||
|
internal class GeometryHelper
|
||||||
|
{
|
||||||
|
public static void GenerateGeometry(StreamGeometryContext ctx, Rect rect, Radii radii)
|
||||||
|
{
|
||||||
|
var point = new Point(radii.LeftTop, 0.0);
|
||||||
|
var point2 = new Point(rect.Width - radii.RightTop, 0.0);
|
||||||
|
var point3 = new Point(rect.Width, radii.TopRight);
|
||||||
|
var point4 = new Point(rect.Width, rect.Height - radii.BottomRight);
|
||||||
|
var point5 = new Point(rect.Width - radii.RightBottom, rect.Height);
|
||||||
|
var point6 = new Point(radii.LeftBottom, rect.Height);
|
||||||
|
var point7 = new Point(0.0, rect.Height - radii.BottomLeft);
|
||||||
|
var point8 = new Point(0.0, radii.TopLeft);
|
||||||
|
if (point.X > point2.X)
|
||||||
|
{
|
||||||
|
var x = radii.LeftTop / (radii.LeftTop + radii.RightTop) * rect.Width;
|
||||||
|
point.X = x;
|
||||||
|
point2.X = x;
|
||||||
|
}
|
||||||
|
if (point3.Y > point4.Y)
|
||||||
|
{
|
||||||
|
var y = radii.TopRight / (radii.TopRight + radii.BottomRight) * rect.Height;
|
||||||
|
point3.Y = y;
|
||||||
|
point4.Y = y;
|
||||||
|
}
|
||||||
|
if (point5.X < point6.X)
|
||||||
|
{
|
||||||
|
var x2 = radii.LeftBottom / (radii.LeftBottom + radii.RightBottom) * rect.Width;
|
||||||
|
point5.X = x2;
|
||||||
|
point6.X = x2;
|
||||||
|
}
|
||||||
|
if (point7.Y < point8.Y)
|
||||||
|
{
|
||||||
|
var y2 = radii.TopLeft / (radii.TopLeft + radii.BottomLeft) * rect.Height;
|
||||||
|
point7.Y = y2;
|
||||||
|
point8.Y = y2;
|
||||||
|
}
|
||||||
|
var vector = new Vector(rect.TopLeft.X, rect.TopLeft.Y);
|
||||||
|
point += vector;
|
||||||
|
point2 += vector;
|
||||||
|
point3 += vector;
|
||||||
|
point4 += vector;
|
||||||
|
point5 += vector;
|
||||||
|
point6 += vector;
|
||||||
|
point7 += vector;
|
||||||
|
point8 += vector;
|
||||||
|
ctx.BeginFigure(point, true, true);
|
||||||
|
ctx.LineTo(point2, true, false);
|
||||||
|
var width = rect.TopRight.X - point2.X;
|
||||||
|
var height = point3.Y - rect.TopRight.Y;
|
||||||
|
if (!DoubleUtil.IsZero(width) || !DoubleUtil.IsZero(height))
|
||||||
|
{
|
||||||
|
ctx.ArcTo(point3, new Size(width, height), 0.0, false, SweepDirection.Clockwise, true, false);
|
||||||
|
}
|
||||||
|
ctx.LineTo(point4, true, false);
|
||||||
|
width = rect.BottomRight.X - point5.X;
|
||||||
|
height = rect.BottomRight.Y - point4.Y;
|
||||||
|
if (!DoubleUtil.IsZero(width) || !DoubleUtil.IsZero(height))
|
||||||
|
{
|
||||||
|
ctx.ArcTo(point5, new Size(width, height), 0.0, false, SweepDirection.Clockwise, true, false);
|
||||||
|
}
|
||||||
|
ctx.LineTo(point6, true, false);
|
||||||
|
width = point6.X - rect.BottomLeft.X;
|
||||||
|
height = rect.BottomLeft.Y - point7.Y;
|
||||||
|
if (!DoubleUtil.IsZero(width) || !DoubleUtil.IsZero(height))
|
||||||
|
{
|
||||||
|
ctx.ArcTo(point7, new Size(width, height), 0.0, false, SweepDirection.Clockwise, true, false);
|
||||||
|
}
|
||||||
|
ctx.LineTo(point8, true, false);
|
||||||
|
width = point.X - rect.TopLeft.X;
|
||||||
|
height = point8.Y - rect.TopLeft.Y;
|
||||||
|
if (!DoubleUtil.IsZero(width) || !DoubleUtil.IsZero(height))
|
||||||
|
{
|
||||||
|
ctx.ArcTo(point, new Size(width, height), 0.0, false, SweepDirection.Clockwise, true, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public struct Radii
|
||||||
|
{
|
||||||
|
internal Radii(CornerRadius radii, Thickness borders, bool outer)
|
||||||
|
{
|
||||||
|
var left = 0.5 * borders.Left;
|
||||||
|
var top = 0.5 * borders.Top;
|
||||||
|
var right = 0.5 * borders.Right;
|
||||||
|
var bottom = 0.5 * borders.Bottom;
|
||||||
|
if (!outer)
|
||||||
|
{
|
||||||
|
LeftTop = Math.Max(0.0, radii.TopLeft - left);
|
||||||
|
TopLeft = Math.Max(0.0, radii.TopLeft - top);
|
||||||
|
TopRight = Math.Max(0.0, radii.TopRight - top);
|
||||||
|
RightTop = Math.Max(0.0, radii.TopRight - right);
|
||||||
|
RightBottom = Math.Max(0.0, radii.BottomRight - right);
|
||||||
|
BottomRight = Math.Max(0.0, radii.BottomRight - bottom);
|
||||||
|
BottomLeft = Math.Max(0.0, radii.BottomLeft - bottom);
|
||||||
|
LeftBottom = Math.Max(0.0, radii.BottomLeft - left);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (DoubleUtil.IsZero(radii.TopLeft))
|
||||||
|
{
|
||||||
|
LeftTop = (TopLeft = 0.0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LeftTop = radii.TopLeft + left;
|
||||||
|
TopLeft = radii.TopLeft + top;
|
||||||
|
}
|
||||||
|
if (DoubleUtil.IsZero(radii.TopRight))
|
||||||
|
{
|
||||||
|
TopRight = (RightTop = 0.0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TopRight = radii.TopRight + top;
|
||||||
|
RightTop = radii.TopRight + right;
|
||||||
|
}
|
||||||
|
if (DoubleUtil.IsZero(radii.BottomRight))
|
||||||
|
{
|
||||||
|
RightBottom = (BottomRight = 0.0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
RightBottom = radii.BottomRight + right;
|
||||||
|
BottomRight = radii.BottomRight + bottom;
|
||||||
|
}
|
||||||
|
if (DoubleUtil.IsZero(radii.BottomLeft))
|
||||||
|
{
|
||||||
|
BottomLeft = (LeftBottom = 0.0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
BottomLeft = radii.BottomLeft + bottom;
|
||||||
|
LeftBottom = radii.BottomLeft + left;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal double LeftTop;
|
||||||
|
|
||||||
|
internal double TopLeft;
|
||||||
|
|
||||||
|
internal double TopRight;
|
||||||
|
|
||||||
|
internal double RightTop;
|
||||||
|
|
||||||
|
internal double RightBottom;
|
||||||
|
|
||||||
|
internal double BottomRight;
|
||||||
|
|
||||||
|
internal double BottomLeft;
|
||||||
|
|
||||||
|
internal double LeftBottom;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Controls;
|
||||||
|
|
||||||
|
namespace SWS.CustomControl
|
||||||
|
{
|
||||||
|
public class MultiSelectComboBoxItem : ListBoxItem
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Controls;
|
||||||
|
|
||||||
|
namespace SWS.CustomControl
|
||||||
|
{
|
||||||
|
public class MultiSelectListBox:ListBox
|
||||||
|
{
|
||||||
|
protected override bool IsItemItsOwnContainerOverride(object item)
|
||||||
|
{
|
||||||
|
return item is MultiSelectComboBoxItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override DependencyObject GetContainerForItemOverride()
|
||||||
|
{
|
||||||
|
return new MultiSelectComboBoxItem();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,630 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Controls.Primitives;
|
||||||
|
using System.Windows.Controls;
|
||||||
|
using System.Windows.Interop;
|
||||||
|
using System.Windows;
|
||||||
|
|
||||||
|
namespace SWS.CustomControl
|
||||||
|
{
|
||||||
|
[TemplatePart(Name = "PART_TextBox", Type = typeof(TextBox))]
|
||||||
|
[TemplatePart(Name = "PART_Popup", Type = typeof(Popup))]
|
||||||
|
[TemplatePart(Name = "PART_Selector", Type = typeof(ListBox))]
|
||||||
|
[TemplatePart(Name = "PART_SelectAll", Type = typeof(CheckBox))]
|
||||||
|
[TemplatePart(Name = "PART_SearchSelector", Type = typeof(ListBox))]
|
||||||
|
public class MultiSelectSearchComboBox : Control
|
||||||
|
{
|
||||||
|
private const string TextBoxTemplateName = "PART_TextBox";
|
||||||
|
private const string PopupTemplateName = "PART_Popup";
|
||||||
|
private const string ListBoxTemplateName = "PART_Selector";
|
||||||
|
private const string CheckBoxTemplateName = "PART_SelectAll";
|
||||||
|
private const string ListBoxTemplateNameSearch = "PART_SearchSelector";
|
||||||
|
|
||||||
|
public static readonly RoutedEvent ClosedEvent =
|
||||||
|
EventManager.RegisterRoutedEvent("Closed",
|
||||||
|
RoutingStrategy.Bubble,
|
||||||
|
typeof(RoutedEventHandler),
|
||||||
|
typeof(MultiSelectSearchComboBox));
|
||||||
|
|
||||||
|
public static readonly DependencyProperty DisplayMemberPathProperty =
|
||||||
|
DependencyProperty.Register("DisplayMemberPath",
|
||||||
|
typeof(string),
|
||||||
|
typeof(MultiSelectSearchComboBox),
|
||||||
|
new PropertyMetadata(string.Empty));
|
||||||
|
|
||||||
|
public static readonly DependencyProperty SelectedValuePathProperty =
|
||||||
|
DependencyProperty.Register("SelectedValuePath",
|
||||||
|
typeof(string),
|
||||||
|
typeof(MultiSelectSearchComboBox),
|
||||||
|
new PropertyMetadata(string.Empty));
|
||||||
|
|
||||||
|
public static readonly DependencyProperty TextProperty =
|
||||||
|
DependencyProperty.Register("Text",
|
||||||
|
typeof(string),
|
||||||
|
typeof(MultiSelectSearchComboBox),
|
||||||
|
new PropertyMetadata(string.Empty));
|
||||||
|
|
||||||
|
public static readonly DependencyProperty ItemsSourceProperty =
|
||||||
|
DependencyProperty.Register("ItemsSource", typeof(IEnumerable), typeof(MultiSelectSearchComboBox),
|
||||||
|
new PropertyMetadata());
|
||||||
|
|
||||||
|
public static readonly DependencyProperty ItemsSourceSearchProperty =
|
||||||
|
DependencyProperty.Register("ItemsSourceSearch", typeof(IEnumerable), typeof(MultiSelectSearchComboBox),
|
||||||
|
new PropertyMetadata());
|
||||||
|
|
||||||
|
public static readonly DependencyProperty SelectAllContentProperty =
|
||||||
|
DependencyProperty.Register("SelectAllContent", typeof(object), typeof(MultiSelectSearchComboBox),
|
||||||
|
new PropertyMetadata("全选"));
|
||||||
|
|
||||||
|
public static readonly DependencyProperty IsSelectAllActiveProperty =
|
||||||
|
DependencyProperty.Register("IsSelectAllActive", typeof(bool), typeof(MultiSelectSearchComboBox),
|
||||||
|
new PropertyMetadata(false));
|
||||||
|
|
||||||
|
public static readonly DependencyProperty DelimiterProperty =
|
||||||
|
DependencyProperty.Register("Delimiter", typeof(string), typeof(MultiSelectSearchComboBox),
|
||||||
|
new PropertyMetadata(";"));
|
||||||
|
|
||||||
|
public static readonly DependencyProperty IsDropDownOpenProperty =
|
||||||
|
DependencyProperty.Register("IsDropDownOpen", typeof(bool), typeof(MultiSelectSearchComboBox),
|
||||||
|
new PropertyMetadata(false, OnIsDropDownOpenChanged));
|
||||||
|
|
||||||
|
public static readonly DependencyProperty MaxDropDownHeightProperty =
|
||||||
|
DependencyProperty.Register("MaxDropDownHeight", typeof(double), typeof(MultiSelectSearchComboBox),
|
||||||
|
new UIPropertyMetadata(SystemParameters.PrimaryScreenHeight / 3.0, OnMaxDropDownHeightChanged));
|
||||||
|
|
||||||
|
public static readonly DependencyProperty SelectedItemsProperty =
|
||||||
|
DependencyProperty.Register("SelectedItems", typeof(IList), typeof(MultiSelectSearchComboBox),
|
||||||
|
new FrameworkPropertyMetadata(new ArrayList(),
|
||||||
|
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault | FrameworkPropertyMetadataOptions.Journal,
|
||||||
|
OnSelectedItemsChanged));
|
||||||
|
|
||||||
|
public static readonly DependencyProperty SearchWatermarkProperty =
|
||||||
|
DependencyProperty.Register("SearchWatermark",
|
||||||
|
typeof(string),
|
||||||
|
typeof(MultiSelectSearchComboBox),
|
||||||
|
new PropertyMetadata(string.Empty));
|
||||||
|
|
||||||
|
private CheckBox _checkBox;
|
||||||
|
private ListBox _listBox;
|
||||||
|
private ListBox _listBoxSearch;
|
||||||
|
private Popup _popup;
|
||||||
|
private TextBox _textBox;
|
||||||
|
private List<object> selectedItems;
|
||||||
|
|
||||||
|
private List<object> selectedList;
|
||||||
|
private List<object> selectedSearchList;
|
||||||
|
|
||||||
|
private bool _isTemplateApplied = false;
|
||||||
|
private IList _pendingSelectedItems;
|
||||||
|
|
||||||
|
private string theLastText;
|
||||||
|
|
||||||
|
static MultiSelectSearchComboBox()
|
||||||
|
{
|
||||||
|
DefaultStyleKeyProperty.OverrideMetadata(typeof(MultiSelectSearchComboBox),
|
||||||
|
new FrameworkPropertyMetadata(typeof(MultiSelectSearchComboBox)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Delimiter
|
||||||
|
{
|
||||||
|
get => (string)GetValue(DelimiterProperty);
|
||||||
|
set => SetValue(DelimiterProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public string SelectedValuePath
|
||||||
|
{
|
||||||
|
get => (string)GetValue(SelectedValuePathProperty);
|
||||||
|
set => SetValue(SelectedValuePathProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public string DisplayMemberPath
|
||||||
|
{
|
||||||
|
get => (string)GetValue(DisplayMemberPathProperty);
|
||||||
|
set => SetValue(DisplayMemberPathProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Text
|
||||||
|
{
|
||||||
|
get => (string)GetValue(TextProperty);
|
||||||
|
set => SetValue(TextProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable ItemsSource
|
||||||
|
{
|
||||||
|
get => (IEnumerable)GetValue(ItemsSourceProperty);
|
||||||
|
set => SetValue(ItemsSourceProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable ItemsSourceSearch
|
||||||
|
{
|
||||||
|
get => (IEnumerable)GetValue(ItemsSourceSearchProperty);
|
||||||
|
set => SetValue(ItemsSourceSearchProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public object SelectAllContent
|
||||||
|
{
|
||||||
|
get => GetValue(SelectAllContentProperty);
|
||||||
|
set => SetValue(SelectAllContentProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsSelectAllActive
|
||||||
|
{
|
||||||
|
get => (bool)GetValue(IsSelectAllActiveProperty);
|
||||||
|
set => SetValue(IsSelectAllActiveProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsDropDownOpen
|
||||||
|
{
|
||||||
|
get => (bool)GetValue(IsDropDownOpenProperty);
|
||||||
|
set => SetValue(IsDropDownOpenProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public double MaxDropDownHeight
|
||||||
|
{
|
||||||
|
get => (double)GetValue(MaxDropDownHeightProperty);
|
||||||
|
set => SetValue(MaxDropDownHeightProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public IList SelectedItems
|
||||||
|
{
|
||||||
|
get => (IList)GetValue(SelectedItemsProperty);
|
||||||
|
set => SetValue(SelectedItemsProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public string SearchWatermark
|
||||||
|
{
|
||||||
|
get => (string)GetValue(SearchWatermarkProperty);
|
||||||
|
set => SetValue(SearchWatermarkProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
[DllImport(Win32.User32)]
|
||||||
|
private static extern IntPtr SetFocus(IntPtr hWnd);
|
||||||
|
|
||||||
|
public event RoutedEventHandler Closed
|
||||||
|
{
|
||||||
|
add => AddHandler(ClosedEvent, value);
|
||||||
|
remove => RemoveHandler(ClosedEvent, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public override void OnApplyTemplate()
|
||||||
|
{
|
||||||
|
base.OnApplyTemplate();
|
||||||
|
|
||||||
|
selectedList = new List<object>();
|
||||||
|
selectedSearchList = new List<object>();
|
||||||
|
selectedItems = new List<object>();
|
||||||
|
_textBox = GetTemplateChild(TextBoxTemplateName) as TextBox;
|
||||||
|
_popup = GetTemplateChild(PopupTemplateName) as Popup;
|
||||||
|
if (_popup != null)
|
||||||
|
_popup.GotFocus += OnPopup_GotFocus;
|
||||||
|
_listBox = GetTemplateChild(ListBoxTemplateName) as ListBox;
|
||||||
|
|
||||||
|
_checkBox = GetTemplateChild(CheckBoxTemplateName) as CheckBox;
|
||||||
|
_listBoxSearch = GetTemplateChild(ListBoxTemplateNameSearch) as ListBox;
|
||||||
|
if (_textBox != null)
|
||||||
|
{
|
||||||
|
_textBox.TextChanged -= OnTextbox_TextChanged;
|
||||||
|
_textBox.TextChanged += OnTextbox_TextChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_checkBox != null)
|
||||||
|
{
|
||||||
|
_checkBox.Checked -= OnCheckBox_Checked;
|
||||||
|
_checkBox.Unchecked -= OnCheckBox_Unchecked;
|
||||||
|
_checkBox.Checked += OnCheckBox_Checked;
|
||||||
|
_checkBox.Unchecked += OnCheckBox_Unchecked;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_listBox != null)
|
||||||
|
{
|
||||||
|
_listBox.IsVisibleChanged -= OnListBox_IsVisibleChanged;
|
||||||
|
_listBox.IsVisibleChanged += OnListBox_IsVisibleChanged;
|
||||||
|
_listBox.SelectionChanged -= OnListBox_SelectionChanged;
|
||||||
|
_listBox.SelectionChanged += OnListBox_SelectionChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_listBoxSearch != null)
|
||||||
|
{
|
||||||
|
_listBoxSearch.IsVisibleChanged -= OnListBoxSearch_IsVisibleChanged;
|
||||||
|
_listBoxSearch.IsVisibleChanged += OnListBoxSearch_IsVisibleChanged;
|
||||||
|
_listBoxSearch.SelectionChanged -= OnListBoxSearch_SelectionChanged;
|
||||||
|
_listBoxSearch.SelectionChanged += OnListBoxSearch_SelectionChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 标记模板已应用
|
||||||
|
_isTemplateApplied = true;
|
||||||
|
|
||||||
|
// 处理之前暂存的 SelectedItems
|
||||||
|
if (_pendingSelectedItems != null)
|
||||||
|
{
|
||||||
|
HandleSelectedItemsChanged(_pendingSelectedItems);
|
||||||
|
_pendingSelectedItems = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnListBoxSearch_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if ((bool)e.NewValue)
|
||||||
|
UpdateIsChecked(_listBoxSearch);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnListBox_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if ((bool)e.NewValue)
|
||||||
|
{
|
||||||
|
foreach (var item in selectedSearchList)
|
||||||
|
if (!_listBox.SelectedItems.Contains(item))
|
||||||
|
_listBox.SelectedItems.Add(item);
|
||||||
|
UpdateIsChecked(_listBox);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateIsChecked(ListBox listBox)
|
||||||
|
{
|
||||||
|
_checkBox.Checked -= OnCheckBox_Checked;
|
||||||
|
if (listBox.Items.Count > 0 && listBox.Items.Count == listBox.SelectedItems.Count)
|
||||||
|
{
|
||||||
|
if (_checkBox.IsChecked != true)
|
||||||
|
_checkBox.IsChecked = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (listBox.SelectedItems.Count == 0)
|
||||||
|
_checkBox.IsChecked = false;
|
||||||
|
else
|
||||||
|
_checkBox.IsChecked = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
_checkBox.Checked += OnCheckBox_Checked;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnPopup_GotFocus(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
var source = (HwndSource)PresentationSource.FromVisual(_popup.Child);
|
||||||
|
if (source != null)
|
||||||
|
{
|
||||||
|
SetFocus(source.Handle);
|
||||||
|
_textBox.Focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnCheckBox_Unchecked(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
if (_listBoxSearch.Visibility == Visibility.Visible)
|
||||||
|
_listBoxSearch.UnselectAll();
|
||||||
|
else
|
||||||
|
_listBox.UnselectAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnCheckBox_Checked(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
if (_listBoxSearch.Visibility == Visibility.Visible)
|
||||||
|
_listBoxSearch.SelectAll();
|
||||||
|
else
|
||||||
|
_listBox.SelectAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Combination()
|
||||||
|
{
|
||||||
|
var seletedName = new List<string>();
|
||||||
|
foreach (var item in _listBox.SelectedItems)
|
||||||
|
{
|
||||||
|
var name = GetDisplayText(item);
|
||||||
|
if (!string.IsNullOrWhiteSpace(name))
|
||||||
|
seletedName.Add(name);
|
||||||
|
else
|
||||||
|
seletedName.Add(item.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var item in _listBoxSearch.SelectedItems)
|
||||||
|
{
|
||||||
|
if (_listBox.SelectedItems.Contains(item))
|
||||||
|
continue;
|
||||||
|
var name = GetDisplayText(item);
|
||||||
|
if (!string.IsNullOrWhiteSpace(name))
|
||||||
|
seletedName.Add(name);
|
||||||
|
else
|
||||||
|
seletedName.Add(item.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
Text = string.Join(Delimiter, seletedName.ToArray());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.RemovedItems.Count > 0)
|
||||||
|
{
|
||||||
|
foreach (var item in e.RemovedItems)
|
||||||
|
{
|
||||||
|
if (_checkBox.IsChecked == true)
|
||||||
|
{
|
||||||
|
_checkBox.Unchecked -= OnCheckBox_Unchecked;
|
||||||
|
if (_listBox.Items.Count == 1)
|
||||||
|
_checkBox.IsChecked = false;
|
||||||
|
else
|
||||||
|
_checkBox.IsChecked = null;
|
||||||
|
_checkBox.Unchecked += OnCheckBox_Unchecked;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_listBoxSearch.SelectedItems.Contains(item))
|
||||||
|
_listBoxSearch.SelectedItems.Remove(item);
|
||||||
|
if (selectedSearchList.Contains(item))
|
||||||
|
selectedSearchList.Remove(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
SelectionChecked(_listBox);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (e.AddedItems.Count > 0)
|
||||||
|
SelectionChecked(_listBox);
|
||||||
|
Combination();
|
||||||
|
var selectedItems = _listBox.SelectedItems;
|
||||||
|
if (SelectedItems == null)
|
||||||
|
SelectedItems = selectedItems;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach (var item in selectedItems)
|
||||||
|
{
|
||||||
|
if (!SelectedItems.Contains(item))
|
||||||
|
SelectedItems.Add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnListBoxSearch_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if (!_listBoxSearch.IsVisible)
|
||||||
|
return;
|
||||||
|
if (e.RemovedItems.Count > 0)
|
||||||
|
{
|
||||||
|
foreach (var item in e.RemovedItems)
|
||||||
|
{
|
||||||
|
if (selectedSearchList.Contains(item))
|
||||||
|
selectedSearchList.Remove(item);
|
||||||
|
if (_listBoxSearch.Items.Contains(item))
|
||||||
|
{
|
||||||
|
if (_listBox.SelectedItems.Contains(item))
|
||||||
|
_listBox.SelectedItems.Remove(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (selectedList.Contains(item))
|
||||||
|
selectedList.Remove(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
Combination();
|
||||||
|
SelectionChecked(_listBoxSearch);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (e.AddedItems.Count > 0)
|
||||||
|
{
|
||||||
|
foreach (var item in e.AddedItems)
|
||||||
|
if (!_listBox.SelectedItems.Contains(item))
|
||||||
|
_listBox.SelectedItems.Add(item);
|
||||||
|
Combination();
|
||||||
|
SelectionChecked(_listBoxSearch);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SelectionChecked(ListBox listbox)
|
||||||
|
{
|
||||||
|
if (listbox.SelectedItems.Count > 0
|
||||||
|
&&
|
||||||
|
listbox.Items.Count == listbox.SelectedItems.Count)
|
||||||
|
{
|
||||||
|
_checkBox.Checked -= OnCheckBox_Checked;
|
||||||
|
_checkBox.IsChecked = true;
|
||||||
|
_checkBox.Checked += OnCheckBox_Checked;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_checkBox.Checked -= OnCheckBox_Checked;
|
||||||
|
if (listbox.SelectedItems.Count > 0
|
||||||
|
&&
|
||||||
|
listbox.Items.Count == listbox.SelectedItems.Count)
|
||||||
|
{
|
||||||
|
if (_checkBox.IsChecked != true)
|
||||||
|
_checkBox.IsChecked = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (listbox.SelectedItems.Count == 0)
|
||||||
|
_checkBox.IsChecked = false;
|
||||||
|
else
|
||||||
|
_checkBox.IsChecked = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
_checkBox.Checked += OnCheckBox_Checked;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private string GetDisplayText(object dataItem, string path = null)
|
||||||
|
{
|
||||||
|
if (dataItem == null) return string.Empty;
|
||||||
|
return GetPropertyValue(dataItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnTextbox_TextChanged(object sender, TextChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(theLastText)) theLastText = _textBox.Text;
|
||||||
|
SearchText(_textBox.Text);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SearchText(string _text)
|
||||||
|
{
|
||||||
|
var text = _text;
|
||||||
|
if (string.IsNullOrWhiteSpace(text))
|
||||||
|
{
|
||||||
|
if (_listBoxSearch.Visibility != Visibility.Collapsed)
|
||||||
|
_listBoxSearch.Visibility = Visibility.Collapsed;
|
||||||
|
if (_listBox.Visibility != Visibility.Visible)
|
||||||
|
_listBox.Visibility = Visibility.Visible;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (_listBoxSearch.Visibility != Visibility.Visible)
|
||||||
|
_listBoxSearch.Visibility = Visibility.Visible;
|
||||||
|
if (_listBox.Visibility != Visibility.Collapsed)
|
||||||
|
_listBox.Visibility = Visibility.Collapsed;
|
||||||
|
var listSearch = new List<object>();
|
||||||
|
foreach (var item in _listBox.Items)
|
||||||
|
{
|
||||||
|
var str = GetPropertyValue(item);
|
||||||
|
if (string.IsNullOrWhiteSpace(str))
|
||||||
|
str = item.ToString();
|
||||||
|
if (!string.IsNullOrWhiteSpace(str))
|
||||||
|
if (str.ToUpperInvariant().Contains(text.ToUpperInvariant()))
|
||||||
|
listSearch.Add(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var item in selectedList)
|
||||||
|
if (!listSearch.Contains(item))
|
||||||
|
listSearch.Add(item);
|
||||||
|
|
||||||
|
var lastItem = ItemsSourceSearch;
|
||||||
|
ItemsSourceSearch = listSearch;
|
||||||
|
SelectionChecked(_listBoxSearch);
|
||||||
|
selectedItems.Clear();
|
||||||
|
foreach (var item in _listBoxSearch.Items)
|
||||||
|
if (_listBox.SelectedItems.Contains(item))
|
||||||
|
if (!_listBoxSearch.SelectedItems.Contains(item))
|
||||||
|
_listBoxSearch.SelectedItems.Add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private string GetPropertyValue(object item)
|
||||||
|
{
|
||||||
|
var result = string.Empty;
|
||||||
|
var nameParts = DisplayMemberPath.Split('.');
|
||||||
|
if (nameParts.Length == 1)
|
||||||
|
{
|
||||||
|
var property = item.GetType().GetProperty(DisplayMemberPath);
|
||||||
|
if (property != null)
|
||||||
|
return (property.GetValue(item, null) ?? string.Empty).ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
return result.ToUpperInvariant();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void OnIsDropDownOpenChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
var multiSelectionSearchComboBox = o as MultiSelectSearchComboBox;
|
||||||
|
if (multiSelectionSearchComboBox != null)
|
||||||
|
multiSelectionSearchComboBox.OnIsOpenChanged((bool)e.OldValue, (bool)e.NewValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnIsOpenChanged(bool oldValue, bool newValue)
|
||||||
|
{
|
||||||
|
if (!newValue)
|
||||||
|
RaiseRoutedEvent(ClosedEvent);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RaiseRoutedEvent(RoutedEvent routedEvent)
|
||||||
|
{
|
||||||
|
var args = new RoutedEventArgs(routedEvent, this);
|
||||||
|
RaiseEvent(args);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void OnMaxDropDownHeightChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
var comboBox = o as MultiSelectSearchComboBox;
|
||||||
|
if (comboBox != null)
|
||||||
|
comboBox.OnMaxDropDownHeightChanged((double)e.OldValue, (double)e.NewValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnMaxDropDownHeightChanged(double oldValue, double newValue)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void OnSelectedItemsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
var mltiSelectionSearchComboBox = d as MultiSelectSearchComboBox;
|
||||||
|
|
||||||
|
if (e.NewValue != null)
|
||||||
|
{
|
||||||
|
var collection = e.NewValue as IList;
|
||||||
|
if (collection.Count <= 0) return;
|
||||||
|
|
||||||
|
//mltiSelectionSearchComboBox._listBox.SelectionChanged -=
|
||||||
|
// mltiSelectionSearchComboBox.OnListBox_SelectionChanged;
|
||||||
|
// foreach (var item in collection)
|
||||||
|
// {
|
||||||
|
// var name = mltiSelectionSearchComboBox.GetPropertyValue(item);
|
||||||
|
// object model = null;
|
||||||
|
// if (!string.IsNullOrWhiteSpace(name))
|
||||||
|
// model = mltiSelectionSearchComboBox._listBox.ItemsSource.OfType<object>().FirstOrDefault(h =>
|
||||||
|
// mltiSelectionSearchComboBox.GetPropertyValue(h) == name);
|
||||||
|
// else
|
||||||
|
// model = mltiSelectionSearchComboBox._listBox.ItemsSource.OfType<object>()
|
||||||
|
// .FirstOrDefault(h => h == item);
|
||||||
|
// if (model != null && !mltiSelectionSearchComboBox._listBox.SelectedItems.Contains(item))
|
||||||
|
// mltiSelectionSearchComboBox._listBox.SelectedItems.Add(model);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// mltiSelectionSearchComboBox._listBox.SelectionChanged +=
|
||||||
|
// mltiSelectionSearchComboBox.OnListBox_SelectionChanged;
|
||||||
|
// mltiSelectionSearchComboBox.Combination();
|
||||||
|
// 如果模板未应用,暂存 SelectedItems
|
||||||
|
if (!mltiSelectionSearchComboBox._isTemplateApplied)
|
||||||
|
{
|
||||||
|
mltiSelectionSearchComboBox._pendingSelectedItems = e.NewValue as IList;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 模板已应用,正常处理
|
||||||
|
mltiSelectionSearchComboBox.HandleSelectedItemsChanged(e.NewValue as IList);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void HandleSelectedItemsChanged(IList newSelectedItems)
|
||||||
|
{
|
||||||
|
if (newSelectedItems == null || _listBox == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_listBox.SelectionChanged -= OnListBox_SelectionChanged;
|
||||||
|
|
||||||
|
// 清空并重新添加选中项
|
||||||
|
_listBox.SelectedItems.Clear();
|
||||||
|
foreach (var item in newSelectedItems)
|
||||||
|
{
|
||||||
|
var model = FindItemInItemsSource(item);
|
||||||
|
if (model != null && !_listBox.SelectedItems.Contains(model))
|
||||||
|
_listBox.SelectedItems.Add(model);
|
||||||
|
}
|
||||||
|
|
||||||
|
_listBox.SelectionChanged += OnListBox_SelectionChanged;
|
||||||
|
Combination(); // 更新显示文本
|
||||||
|
}
|
||||||
|
private object FindItemInItemsSource(object targetItem)
|
||||||
|
{
|
||||||
|
if (targetItem == null) return null;
|
||||||
|
|
||||||
|
// 根据 DisplayMemberPath 或直接比较查找匹配项
|
||||||
|
var displayPath = DisplayMemberPath;
|
||||||
|
if (string.IsNullOrEmpty(displayPath))
|
||||||
|
return targetItem;
|
||||||
|
|
||||||
|
var items = _listBox.ItemsSource?.OfType<object>().ToList();
|
||||||
|
if (items == null) return null;
|
||||||
|
|
||||||
|
var property = targetItem.GetType().GetProperty(displayPath);
|
||||||
|
if (property == null) return null;
|
||||||
|
|
||||||
|
var targetValue = property.GetValue(targetItem)?.ToString();
|
||||||
|
return items.FirstOrDefault(i =>
|
||||||
|
{
|
||||||
|
var iValue = i.GetType().GetProperty(displayPath)?.GetValue(i)?.ToString();
|
||||||
|
return iValue == targetValue;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,52 @@
|
|||||||
|
using System;
|
||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Controls;
|
||||||
|
|
||||||
|
namespace SWS.CustomControl
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 当不需要使用Grid的分行分列,则可使用 SmallPanel
|
||||||
|
/// </summary>
|
||||||
|
public class SmallPanel : Panel
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Content measurement.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="constraint">Constraint</param>
|
||||||
|
/// <returns>Desired size</returns>
|
||||||
|
protected override Size MeasureOverride(Size constraint)
|
||||||
|
{
|
||||||
|
Size gridDesiredSize = new Size();
|
||||||
|
UIElementCollection children = InternalChildren;
|
||||||
|
|
||||||
|
for (int i = 0, count = children.Count; i < count; ++i)
|
||||||
|
{
|
||||||
|
UIElement child = children[i];
|
||||||
|
if (child != null)
|
||||||
|
{
|
||||||
|
child.Measure(constraint);
|
||||||
|
gridDesiredSize.Width = Math.Max(gridDesiredSize.Width, child.DesiredSize.Width);
|
||||||
|
gridDesiredSize.Height = Math.Max(gridDesiredSize.Height, child.DesiredSize.Height);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return (gridDesiredSize);
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Content arrangement.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="arrangeSize">Arrange size</param>
|
||||||
|
protected override Size ArrangeOverride(Size arrangeSize)
|
||||||
|
{
|
||||||
|
UIElementCollection children = InternalChildren;
|
||||||
|
for (int i = 0, count = children.Count; i < count; ++i)
|
||||||
|
{
|
||||||
|
UIElement child = children[i];
|
||||||
|
if (child != null)
|
||||||
|
{
|
||||||
|
child.Arrange(new Rect(arrangeSize));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return (arrangeSize);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,50 @@
|
|||||||
|
using System.Windows.Media;
|
||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Controls;
|
||||||
|
|
||||||
|
namespace SWS.CustomControl
|
||||||
|
{
|
||||||
|
public class WDBorder : Border
|
||||||
|
{
|
||||||
|
public static readonly DependencyPropertyKey ContentClipPropertyKey =
|
||||||
|
DependencyProperty.RegisterReadOnly("ContentClip", typeof(Geometry), typeof(WDBorder),
|
||||||
|
new PropertyMetadata(null));
|
||||||
|
|
||||||
|
public static readonly DependencyProperty ContentClipProperty = ContentClipPropertyKey.DependencyProperty;
|
||||||
|
|
||||||
|
public Geometry ContentClip
|
||||||
|
{
|
||||||
|
get => (Geometry)GetValue(ContentClipProperty);
|
||||||
|
set => SetValue(ContentClipProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Geometry CalculateContentClip()
|
||||||
|
{
|
||||||
|
var borderThickness = BorderThickness;
|
||||||
|
var cornerRadius = CornerRadius;
|
||||||
|
var renderSize = RenderSize;
|
||||||
|
var width = renderSize.Width - borderThickness.Left - borderThickness.Right;
|
||||||
|
var height = renderSize.Height - borderThickness.Top - borderThickness.Bottom;
|
||||||
|
if (width > 0.0 && height > 0.0)
|
||||||
|
{
|
||||||
|
var rect = new Rect(0.0, 0.0, width, height);
|
||||||
|
var radii = new GeometryHelper.Radii(cornerRadius, borderThickness, false);
|
||||||
|
var streamGeometry = new StreamGeometry();
|
||||||
|
using (var streamGeometryContext = streamGeometry.Open())
|
||||||
|
{
|
||||||
|
GeometryHelper.GenerateGeometry(streamGeometryContext, rect, radii);
|
||||||
|
streamGeometry.Freeze();
|
||||||
|
return streamGeometry;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnRender(DrawingContext dc)
|
||||||
|
{
|
||||||
|
SetValue(ContentClipPropertyKey, CalculateContentClip());
|
||||||
|
base.OnRender(dc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,170 @@
|
|||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace SWS.CustomControl
|
||||||
|
{
|
||||||
|
public static class Win32
|
||||||
|
{
|
||||||
|
public const string
|
||||||
|
User32 = "user32.dll",
|
||||||
|
Gdi32 = "gdi32.dll",
|
||||||
|
GdiPlus = "gdiplus.dll",
|
||||||
|
Kernel32 = "kernel32.dll",
|
||||||
|
Shell32 = "shell32.dll",
|
||||||
|
MsImg = "msimg32.dll",
|
||||||
|
NTdll = "ntdll.dll",
|
||||||
|
DwmApi = "dwmapi.dll",
|
||||||
|
Winmm = "winmm.dll",
|
||||||
|
Shcore = "Shcore.dll";
|
||||||
|
//查找窗口的委托 查找逻辑
|
||||||
|
public delegate bool EnumWindowsProc(IntPtr hwnd, IntPtr lParam);
|
||||||
|
|
||||||
|
[DllImport(User32)]
|
||||||
|
public static extern IntPtr FindWindow(string className, string winName);
|
||||||
|
|
||||||
|
[DllImport(User32)]
|
||||||
|
public static extern IntPtr SendMessageTimeout(IntPtr hwnd, uint msg, IntPtr wParam, IntPtr lParam,
|
||||||
|
uint fuFlage, uint timeout, IntPtr result);
|
||||||
|
|
||||||
|
[DllImport(User32)]
|
||||||
|
public static extern bool EnumWindows(EnumWindowsProc proc, IntPtr lParam);
|
||||||
|
|
||||||
|
[DllImport(User32)]
|
||||||
|
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string className,
|
||||||
|
string winName);
|
||||||
|
|
||||||
|
[DllImport(User32)]
|
||||||
|
public static extern bool ShowWindow(IntPtr hwnd, int nCmdShow);
|
||||||
|
|
||||||
|
[DllImport(User32)]
|
||||||
|
public static extern IntPtr SetParent(IntPtr hwnd, IntPtr parentHwnd);
|
||||||
|
|
||||||
|
[DllImport(User32)]
|
||||||
|
public static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
|
||||||
|
|
||||||
|
[DllImport(User32)]
|
||||||
|
public static extern bool SetForegroundWindow(IntPtr hWnd);
|
||||||
|
|
||||||
|
[DllImport(User32)]
|
||||||
|
public static extern bool PostMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
|
||||||
|
|
||||||
|
[DllImport(User32)]
|
||||||
|
public static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
|
||||||
|
|
||||||
|
[DllImport(Winmm)]
|
||||||
|
public static extern long mciSendString(string strCommand, StringBuilder strReturn,
|
||||||
|
int iReturnLength, IntPtr hwndCallback);
|
||||||
|
|
||||||
|
#region WINAPI DLL Imports
|
||||||
|
|
||||||
|
[DllImport(Gdi32, ExactSpelling = true, PreserveSig = true, SetLastError = true)]
|
||||||
|
public static extern IntPtr SelectObject(IntPtr hdc, IntPtr hgdiobj);
|
||||||
|
|
||||||
|
[DllImport(Gdi32)]
|
||||||
|
public static extern IntPtr CreateCompatibleBitmap(IntPtr hdc, int nWidth, int nHeight);
|
||||||
|
|
||||||
|
[DllImport(Gdi32, SetLastError = true)]
|
||||||
|
public static extern IntPtr CreateCompatibleDC(IntPtr hdc);
|
||||||
|
|
||||||
|
[DllImport(Gdi32)]
|
||||||
|
public static extern bool DeleteObject(IntPtr hObject);
|
||||||
|
|
||||||
|
[DllImport(Gdi32)]
|
||||||
|
public static extern IntPtr CreateBitmap(int nWidth, int nHeight, uint cPlanes, uint cBitsPerPel,
|
||||||
|
IntPtr lpvBits);
|
||||||
|
|
||||||
|
[DllImport(User32)]
|
||||||
|
public static extern IntPtr GetDC(IntPtr hWnd);
|
||||||
|
|
||||||
|
[DllImport(User32)]
|
||||||
|
public static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);
|
||||||
|
|
||||||
|
|
||||||
|
[DllImport(Gdi32, EntryPoint = "DeleteDC")]
|
||||||
|
public static extern IntPtr DeleteDC(IntPtr hDc);
|
||||||
|
|
||||||
|
|
||||||
|
public const int SM_CXSCREEN = 0;
|
||||||
|
|
||||||
|
public const int SM_CYSCREEN = 1;
|
||||||
|
|
||||||
|
[DllImport(User32, EntryPoint = "GetDesktopWindow")]
|
||||||
|
public static extern IntPtr GetDesktopWindow();
|
||||||
|
|
||||||
|
[DllImport(User32, EntryPoint = "GetSystemMetrics")]
|
||||||
|
public static extern int GetSystemMetrics(int abc);
|
||||||
|
|
||||||
|
[DllImport(User32, EntryPoint = "GetWindowDC")]
|
||||||
|
public static extern IntPtr GetWindowDC(int ptr);
|
||||||
|
|
||||||
|
public struct DeskTopSize
|
||||||
|
{
|
||||||
|
public int cx;
|
||||||
|
public int cy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum TernaryRasterOperations : uint
|
||||||
|
{
|
||||||
|
/// <summary>dest = source</summary>
|
||||||
|
SRCCOPY = 0x00CC0020,
|
||||||
|
|
||||||
|
/// <summary>dest = source OR dest</summary>
|
||||||
|
SRCPAINT = 0x00EE0086,
|
||||||
|
|
||||||
|
/// <summary>dest = source AND dest</summary>
|
||||||
|
SRCAND = 0x008800C6,
|
||||||
|
|
||||||
|
/// <summary>dest = source XOR dest</summary>
|
||||||
|
SRCINVERT = 0x00660046,
|
||||||
|
|
||||||
|
/// <summary>dest = source AND (NOT dest)</summary>
|
||||||
|
SRCERASE = 0x00440328,
|
||||||
|
|
||||||
|
/// <summary>dest = (NOT source)</summary>
|
||||||
|
NOTSRCCOPY = 0x00330008,
|
||||||
|
|
||||||
|
/// <summary>dest = (NOT src) AND (NOT dest)</summary>
|
||||||
|
NOTSRCERASE = 0x001100A6,
|
||||||
|
|
||||||
|
/// <summary>dest = (source AND pattern)</summary>
|
||||||
|
MERGECOPY = 0x00C000CA,
|
||||||
|
|
||||||
|
/// <summary>dest = (NOT source) OR dest</summary>
|
||||||
|
MERGEPAINT = 0x00BB0226,
|
||||||
|
|
||||||
|
/// <summary>dest = pattern</summary>
|
||||||
|
PATCOPY = 0x00F00021,
|
||||||
|
|
||||||
|
/// <summary>dest = DPSnoo</summary>
|
||||||
|
PATPAINT = 0x00FB0A09,
|
||||||
|
|
||||||
|
/// <summary>dest = pattern XOR dest</summary>
|
||||||
|
PATINVERT = 0x005A0049,
|
||||||
|
|
||||||
|
/// <summary>dest = (NOT dest)</summary>
|
||||||
|
DSTINVERT = 0x00550009,
|
||||||
|
|
||||||
|
/// <summary>dest = BLACK</summary>
|
||||||
|
BLACKNESS = 0x00000042,
|
||||||
|
|
||||||
|
/// <summary>dest = WHITE</summary>
|
||||||
|
WHITENESS = 0x00FF0062
|
||||||
|
}
|
||||||
|
|
||||||
|
[DllImport(Gdi32)]
|
||||||
|
public static extern bool BitBlt(IntPtr hdc, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc,
|
||||||
|
int nXSrc, int nYSrc, TernaryRasterOperations dwRop);
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设置鼠标的坐标
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="x">横坐标</param>
|
||||||
|
/// <param name="y">纵坐标</param>
|
||||||
|
[DllImport(User32)]
|
||||||
|
public extern static void SetCursorPos(int x, int y);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
33
newFront/c#前端/SWS.CustomControl/Properties/AssemblyInfo.cs
Normal file
33
newFront/c#前端/SWS.CustomControl/Properties/AssemblyInfo.cs
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// 有关程序集的一般信息由以下
|
||||||
|
// 控制。更改这些特性值可修改
|
||||||
|
// 与程序集关联的信息。
|
||||||
|
[assembly: AssemblyTitle("SWS.CustomControl")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("SWS.CustomControl")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2025")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// 将 ComVisible 设置为 false 会使此程序集中的类型
|
||||||
|
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
|
||||||
|
//请将此类型的 ComVisible 特性设置为 true。
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
|
||||||
|
[assembly: Guid("2dcf996e-063b-4b95-8530-28f6df0da58a")]
|
||||||
|
|
||||||
|
// 程序集的版本信息由下列四个值组成:
|
||||||
|
//
|
||||||
|
// 主版本
|
||||||
|
// 次版本
|
||||||
|
// 生成号
|
||||||
|
// 修订号
|
||||||
|
//
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
80
newFront/c#前端/SWS.CustomControl/SWS.CustomControl.csproj
Normal file
80
newFront/c#前端/SWS.CustomControl/SWS.CustomControl.csproj
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{2DCF996E-063B-4B95-8530-28F6DF0DA58A}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>SWS.CustomControl</RootNamespace>
|
||||||
|
<AssemblyName>SWS.CustomControl</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<Deterministic>true</Deterministic>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<PlatformTarget>x64</PlatformTarget>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="PresentationCore" />
|
||||||
|
<Reference Include="PresentationFramework" />
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Xaml" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Net.Http" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
<Reference Include="WindowsBase" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="customWindowTitleBar.xaml.cs">
|
||||||
|
<DependentUpon>customWindowTitleBar.xaml</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="IconButton\IconButton.cs" />
|
||||||
|
<Compile Include="MultiSelectSearchComboBox\CollectionToStringConverter.cs" />
|
||||||
|
<Compile Include="MultiSelectSearchComboBox\DoubleUtil.cs" />
|
||||||
|
<Compile Include="MultiSelectSearchComboBox\ElementHelper.cs" />
|
||||||
|
<Compile Include="MultiSelectSearchComboBox\GeometryHelper.cs" />
|
||||||
|
<Compile Include="MultiSelectSearchComboBox\MultiSelectComboBoxItem.cs" />
|
||||||
|
<Compile Include="MultiSelectSearchComboBox\MultiSelectListBox.cs" />
|
||||||
|
<Compile Include="MultiSelectSearchComboBox\MultiSelectSearchComboBox.cs" />
|
||||||
|
<Compile Include="MultiSelectSearchComboBox\SmallPanel.cs" />
|
||||||
|
<Compile Include="MultiSelectSearchComboBox\WDBorder.cs" />
|
||||||
|
<Compile Include="MultiSelectSearchComboBox\Win32.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="Selector\ConditionalStyleSelector.cs" />
|
||||||
|
<Compile Include="Selector\SignalNoticeStyleSelector.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Page Include="customWindowTitleBar.xaml">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
<Generator>MSBuild:Compile</Generator>
|
||||||
|
</Page>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\SWS.Model\SWS.Model.csproj">
|
||||||
|
<Project>{1995385b-d1b0-4c55-835e-d3e769972a6a}</Project>
|
||||||
|
<Name>SWS.Model</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
</Project>
|
@ -0,0 +1,83 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Controls;
|
||||||
|
using System.Windows.Data;
|
||||||
|
|
||||||
|
namespace SWS.CustomControl
|
||||||
|
{
|
||||||
|
public class ConditionalStyleSelector:StyleSelector
|
||||||
|
{
|
||||||
|
public override System.Windows.Style SelectStyle(object item, System.Windows.DependencyObject container)
|
||||||
|
{
|
||||||
|
//获取到转换器返回的值
|
||||||
|
object conditionValue = this.ConditionConverter.Convert(item, null, null, null);
|
||||||
|
foreach (ConditionalStyleRule rule in this.Rules)
|
||||||
|
{
|
||||||
|
//值相同则返回当前样式
|
||||||
|
if (Equals(rule.Value, conditionValue))
|
||||||
|
{
|
||||||
|
return rule.Style;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return base.SelectStyle(item, container);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ConditionalStyleRule> _Rules;
|
||||||
|
public List<ConditionalStyleRule> Rules
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (this._Rules == null)
|
||||||
|
{
|
||||||
|
this._Rules = new List<ConditionalStyleRule>();
|
||||||
|
}
|
||||||
|
|
||||||
|
return this._Rules;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
IValueConverter _ConditionConverter;
|
||||||
|
public IValueConverter ConditionConverter
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this._ConditionConverter;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this._ConditionConverter = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ConditionalStyleRule
|
||||||
|
{
|
||||||
|
object _Value;
|
||||||
|
public object Value
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this._Value;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this._Value = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Style _Style;
|
||||||
|
public Style Style
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this._Style;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this._Style = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Controls;
|
||||||
|
using SWS.Model;
|
||||||
|
|
||||||
|
namespace SWS.CustomControl
|
||||||
|
{
|
||||||
|
public class SignalNoticeStyleSelector:StyleSelector
|
||||||
|
{
|
||||||
|
public override Style SelectStyle(object item, DependencyObject container)
|
||||||
|
{
|
||||||
|
SignalNotice conditionValue = item as SignalNotice;
|
||||||
|
string value = conditionValue.CheckFLG.ToString();
|
||||||
|
foreach (ConditionalStyleRule rule in this.Rules)
|
||||||
|
{
|
||||||
|
//值相同则返回当前样式
|
||||||
|
if (Equals(rule.Value, value))
|
||||||
|
{
|
||||||
|
return rule.Style;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return base.SelectStyle(item, container);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ConditionalStyleRule> _Rules;
|
||||||
|
public List<ConditionalStyleRule> Rules
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (this._Rules == null)
|
||||||
|
{
|
||||||
|
this._Rules = new List<ConditionalStyleRule>();
|
||||||
|
}
|
||||||
|
|
||||||
|
return this._Rules;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
newFront/c#前端/SWS.CustomControl/bin/Debug/Newtonsoft.Json.dll
Normal file
BIN
newFront/c#前端/SWS.CustomControl/bin/Debug/Newtonsoft.Json.dll
Normal file
Binary file not shown.
11363
newFront/c#前端/SWS.CustomControl/bin/Debug/Newtonsoft.Json.xml
Normal file
11363
newFront/c#前端/SWS.CustomControl/bin/Debug/Newtonsoft.Json.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
newFront/c#前端/SWS.CustomControl/bin/Debug/Prism.Wpf.dll
Normal file
BIN
newFront/c#前端/SWS.CustomControl/bin/Debug/Prism.Wpf.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.CustomControl/bin/Debug/Prism.Wpf.pdb
Normal file
BIN
newFront/c#前端/SWS.CustomControl/bin/Debug/Prism.Wpf.pdb
Normal file
Binary file not shown.
5209
newFront/c#前端/SWS.CustomControl/bin/Debug/Prism.Wpf.xml
Normal file
5209
newFront/c#前端/SWS.CustomControl/bin/Debug/Prism.Wpf.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
newFront/c#前端/SWS.CustomControl/bin/Debug/Prism.dll
Normal file
BIN
newFront/c#前端/SWS.CustomControl/bin/Debug/Prism.dll
Normal file
Binary file not shown.
BIN
newFront/c#前端/SWS.CustomControl/bin/Debug/Prism.pdb
Normal file
BIN
newFront/c#前端/SWS.CustomControl/bin/Debug/Prism.pdb
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user