- Update Project and Libraries to .Net 7

- Update Nuget Packages
- Update Namespaces to C# 10 Style
- Change BinaryFormatter to XmlSerializer
This commit is contained in:
Ali Jebali 2023-08-28 13:15:36 +03:30
parent 4f30e3f0e3
commit e1cd0bbf63
86 changed files with 14564 additions and 14665 deletions

View file

@ -1,10 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0-windows</TargetFramework>
<TargetFramework>net7.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<Compile Update="Resources.Designer.cs">
<DesignTime>True</DesignTime>
@ -16,5 +14,4 @@
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
</Project>

View file

@ -1,20 +1,17 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0-windows</TargetFramework>
<TargetFramework>net7.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<Protobuf Include="Statistics.proto" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Google.Protobuf" Version="3.23.3" />
<PackageReference Include="Grpc.Net.Client" Version="2.54.0" />
<PackageReference Include="Grpc.Tools" Version="2.54.0">
<PackageReference Include="Google.Protobuf" Version="3.24.2" />
<PackageReference Include="Grpc.Net.Client" Version="2.56.0" />
<PackageReference Include="Grpc.Tools" Version="2.57.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
</Project>

View file

@ -1,7 +1,7 @@
using ProtosLib.Statistics;
namespace ProtosLib
{
namespace ProtosLib;
public class Tests
{
private StatsService.StatsServiceClient client_;
@ -10,4 +10,3 @@ namespace ProtosLib
{
}
}
}

View file

@ -4,8 +4,8 @@ using v2rayN.Handler;
using v2rayN.Mode;
using v2rayN.Tool;
namespace v2rayN
{
namespace v2rayN;
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
@ -87,4 +87,3 @@ namespace v2rayN
Utils.SaveLog("TaskScheduler_UnobservedTaskException", e.Exception);
}
}
}

View file

@ -2,8 +2,8 @@
using System.IO;
using System.Net;
namespace v2rayN.Base
{
namespace v2rayN.Base;
internal class DownloaderHelper
{
private static readonly Lazy<DownloaderHelper> _instance = new(() => new());
@ -178,4 +178,3 @@ namespace v2rayN.Base
downloadOpt = null;
}
}
}

View file

@ -3,8 +3,8 @@ using System.Net.Http;
using System.Net.Mime;
using System.Text;
namespace v2rayN.Base
{
namespace v2rayN.Base;
/// <summary>
/// </summary>
public class HttpClientHelper
@ -153,4 +153,3 @@ namespace v2rayN.Base
} while (isMoreToRead);
}
}
}

View file

@ -1,9 +1,8 @@
using System.Windows.Controls;
namespace v2rayN.Base
{
namespace v2rayN.Base;
internal class MyDGTextColumn : DataGridTextColumn
{
public string ExName { get; set; }
}
}

View file

@ -1,8 +1,8 @@
using SQLite;
using System.Collections;
namespace v2rayN.Base
{
namespace v2rayN.Base;
public sealed class SqliteHelper
{
private static readonly Lazy<SqliteHelper> _instance = new(() => new());
@ -119,4 +119,3 @@ namespace v2rayN.Base
return _dbAsync.Table<T>();
}
}
}

View file

@ -1,8 +1,8 @@
using System.Diagnostics.CodeAnalysis;
using System.IO;
namespace v2rayN.Base
{
namespace v2rayN.Base;
internal static class StringEx
{
public static bool IsNullOrEmpty([NotNullWhen(false)] this string? value)
@ -81,4 +81,3 @@ namespace v2rayN.Base
return char.ToUpper(value[0]) + value.Substring(1);
}
}
}

View file

@ -1,8 +1,8 @@
using System.Windows.Data;
using System.Windows.Media;
namespace v2rayN.Converters
{
namespace v2rayN.Converters;
public class DelayColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
@ -22,4 +22,3 @@ namespace v2rayN.Converters
return null;
}
}
}

View file

@ -1,8 +1,8 @@
using System.Globalization;
using System.Windows.Data;
namespace v2rayN.Converters
{
namespace v2rayN.Converters;
[ValueConversion(typeof(bool), typeof(bool))]
public class InverseBooleanConverter : IValueConverter
{
@ -21,4 +21,3 @@ namespace v2rayN.Converters
throw new NotImplementedException();
}
}
}

View file

@ -1,8 +1,8 @@
using System.Windows.Media;
using v2rayN.Handler;
namespace v2rayN.Converters
{
namespace v2rayN.Converters;
public class MaterialDesignFonts
{
public static FontFamily MyFont { get; }
@ -24,4 +24,3 @@ namespace v2rayN.Converters
MyFont ??= new FontFamily("Microsoft YaHei");
}
}
}

View file

@ -1,5 +1,5 @@
namespace v2rayN
{
namespace v2rayN;
internal class Global
{
#region const
@ -171,4 +171,3 @@
#endregion global variable
}
}

View file

@ -5,8 +5,8 @@ using v2rayN.Base;
using v2rayN.Mode;
using v2rayN.Tool;
namespace v2rayN.Handler
{
namespace v2rayN.Handler;
/// <summary>
/// 本软件配置文件处理类
/// </summary>
@ -1622,4 +1622,3 @@ namespace v2rayN.Handler
#endregion DNS
}
}

View file

@ -2,8 +2,8 @@
using v2rayN.Mode;
using v2rayN.Resx;
namespace v2rayN.Handler
{
namespace v2rayN.Handler;
/// <summary>
/// Core configuration file processing class
/// </summary>
@ -153,4 +153,3 @@ namespace v2rayN.Handler
return coreConfigV2ray.GenerateClientSpeedtestConfigString(selecteds, out msg);
}
}
}

View file

@ -2,8 +2,8 @@
using v2rayN.Mode;
using v2rayN.Resx;
namespace v2rayN.Handler
{
namespace v2rayN.Handler;
internal class CoreConfigSingbox
{
private string SampleClient = Global.SingboxSampleClient;
@ -737,4 +737,3 @@ namespace v2rayN.Handler
return 0;
}
}
}

View file

@ -4,8 +4,8 @@ using v2rayN.Base;
using v2rayN.Mode;
using v2rayN.Resx;
namespace v2rayN.Handler
{
namespace v2rayN.Handler;
internal class CoreConfigV2ray
{
private string SampleClient = Global.v2raySampleClient;
@ -946,4 +946,3 @@ namespace v2rayN.Handler
#endregion Gen speedtest config
}
}

View file

@ -4,8 +4,8 @@ using System.Text;
using v2rayN.Mode;
using v2rayN.Resx;
namespace v2rayN.Handler
{
namespace v2rayN.Handler;
/// <summary>
/// Core process processing class
/// </summary>
@ -359,4 +359,3 @@ namespace v2rayN.Handler
#endregion Process
}
}

View file

@ -7,8 +7,8 @@ using System.Net.Sockets;
using v2rayN.Base;
using v2rayN.Resx;
namespace v2rayN.Handler
{
namespace v2rayN.Handler;
/// <summary>
///Download
/// </summary>
@ -336,4 +336,3 @@ namespace v2rayN.Handler
}
}
}
}

View file

@ -7,8 +7,8 @@ using System.Windows.Interop;
using v2rayN.Mode;
using v2rayN.Resx;
namespace v2rayN.Handler
{
namespace v2rayN.Handler;
public sealed class HotkeyHandler
{
private static readonly Lazy<HotkeyHandler> _instance = new(() => new());
@ -177,4 +177,3 @@ namespace v2rayN.Handler
NoRepeat = 0x4000
}
}
}

View file

@ -1,8 +1,8 @@
using v2rayN.Base;
using v2rayN.Mode;
namespace v2rayN.Handler
{
namespace v2rayN.Handler;
public sealed class LazyConfig
{
private static readonly Lazy<LazyConfig> _instance = new(() => new());
@ -365,4 +365,3 @@ namespace v2rayN.Handler
#endregion Core Type
}
}

View file

@ -5,8 +5,8 @@ using System.Windows.Media.Imaging;
using v2rayN.Mode;
using v2rayN.Resx;
namespace v2rayN.Handler
{
namespace v2rayN.Handler;
public sealed class MainFormHandler
{
private static readonly Lazy<MainFormHandler> instance = new(() => new());
@ -225,4 +225,3 @@ namespace v2rayN.Handler
HotkeyHandler.Instance.Load();
}
}
}

View file

@ -1,8 +1,8 @@
using MaterialDesignThemes.Wpf;
using ReactiveUI;
namespace v2rayN.Handler
{
namespace v2rayN.Handler;
public class NoticeHandler
{
private readonly ISnackbarMessageQueue _snackbarMessageQueue;
@ -30,4 +30,3 @@ namespace v2rayN.Handler
MessageBus.Current.SendMessage(msg, "MsgView");
}
}
}

View file

@ -3,8 +3,8 @@ using System.Reactive.Linq;
using v2rayN.Base;
using v2rayN.Mode;
namespace v2rayN.Handler
{
namespace v2rayN.Handler;
internal class ProfileExHandler
{
private static readonly Lazy<ProfileExHandler> _instance = new(() => new());
@ -142,4 +142,3 @@ namespace v2rayN.Handler
return _lstProfileEx.Max(t => t == null ? 0 : t.sort);
}
}
}

View file

@ -1,8 +1,8 @@
using Microsoft.Win32;
using System.Runtime.InteropServices;
namespace v2rayN.Handler
{
namespace v2rayN.Handler;
internal class ProxySetting
{
public static bool UnsetProxy()
@ -213,4 +213,3 @@ namespace v2rayN.Handler
return ProxyServer;
}
}
}

View file

@ -2,11 +2,7 @@
using QRCoder.Xaml;
using System.Windows.Media;
namespace v2rayN.Handler
{
/// <summary>
/// 含有QR码的描述类和包装编码和渲染
/// </summary>
namespace v2rayN.Handler;
public class QRCodeHelper
{
public static DrawingImage? GetQRCode(string strContent)
@ -25,4 +21,3 @@ namespace v2rayN.Handler
}
}
}
}

View file

@ -5,8 +5,8 @@ using v2rayN.Base;
using v2rayN.Mode;
using v2rayN.Resx;
namespace v2rayN.Handler
{
namespace v2rayN.Handler;
internal class ShareHandler
{
#region GetShareUrl
@ -814,4 +814,3 @@ namespace v2rayN.Handler
#endregion ImportShareUrl
}
}

View file

@ -5,8 +5,8 @@ using System.Net.Sockets;
using v2rayN.Mode;
using v2rayN.Resx;
namespace v2rayN.Handler
{
namespace v2rayN.Handler;
internal class SpeedtestHandler
{
private Config _config;
@ -424,4 +424,3 @@ namespace v2rayN.Handler
_updateFunc(indexId, delay, speed);
}
}
}

View file

@ -3,8 +3,8 @@ using System.Net.Sockets;
using v2rayN.Base;
using v2rayN.Mode;
namespace v2rayN.Handler
{
namespace v2rayN.Handler;
internal class StatisticsHandler
{
private Config _config;
@ -158,4 +158,3 @@ namespace v2rayN.Handler
return 69090;
}
}
}

View file

@ -2,8 +2,8 @@
using System.Text;
using v2rayN.Mode;
namespace v2rayN.Handler
{
namespace v2rayN.Handler;
internal class StatisticsSingbox
{
private Config _config;
@ -125,4 +125,3 @@ namespace v2rayN.Handler
}
}
}
}

View file

@ -3,8 +3,8 @@ using Grpc.Net.Client;
using ProtosLib.Statistics;
using v2rayN.Mode;
namespace v2rayN.Handler
{
namespace v2rayN.Handler;
internal class StatisticsV2ray
{
private Mode.Config _config;
@ -116,4 +116,3 @@ namespace v2rayN.Handler
}
}
}
}

View file

@ -6,8 +6,8 @@ using v2rayN.Mode;
using v2rayN.Properties;
using v2rayN.Tool;
namespace v2rayN.Handler
{
namespace v2rayN.Handler;
public static class SysProxyHandle
{
//private const string _userWininetConfigFile = "user-wininet.json";
@ -219,4 +219,3 @@ namespace v2rayN.Handler
//}
}
}
}

View file

@ -11,8 +11,8 @@ using v2rayN.Mode;
using v2rayN.Resx;
using v2rayN.Tool;
namespace v2rayN.Handler
{
namespace v2rayN.Handler;
internal class UpdateHandle
{
private Action<bool, string> _updateFunc;
@ -643,4 +643,3 @@ namespace v2rayN.Handler
#endregion private
}
}

View file

@ -1,5 +1,5 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
public class ComboItem
{
public string ID
@ -12,4 +12,3 @@
get; set;
}
}
}

View file

@ -1,5 +1,5 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
/// <summary>
/// 本软件配置文件实体类
/// </summary>
@ -34,4 +34,3 @@
#endregion other entities
}
}

View file

@ -1,7 +1,7 @@
using System.Windows.Input;
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
[Serializable]
public class CoreBasicItem
{
@ -206,4 +206,3 @@ namespace v2rayN.Mode
public int max_streams { get; set; }
public bool padding { get; set; }
}
}

View file

@ -1,5 +1,5 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
[Serializable]
public class ConfigOld
{
@ -437,4 +437,3 @@
get; set;
}
}
}

View file

@ -1,5 +1,5 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
[Serializable]
public class CoreInfo
{
@ -24,4 +24,3 @@
public bool redirectInfo { get; set; }
}
}

View file

@ -1,7 +1,7 @@
using SQLite;
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
[Serializable]
public class DNSItem
{
@ -15,4 +15,3 @@ namespace v2rayN.Mode
public string? tunDNS { get; set; }
public string? domainStrategy4Freedom { get; set; }
}
}

View file

@ -1,5 +1,5 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
public enum EConfigType
{
VMess = 1,
@ -9,4 +9,3 @@
VLESS = 5,
Trojan = 6
}
}

View file

@ -1,5 +1,5 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
public enum ECoreType
{
v2fly = 1,
@ -15,4 +15,3 @@
juicity = 25,
v2rayN = 99
}
}

View file

@ -1,5 +1,5 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
public enum EGlobalHotkey
{
ShowForm = 0,
@ -8,4 +8,3 @@
SystemProxyUnchanged = 3,
SystemProxyPac = 4,
}
}

View file

@ -1,5 +1,5 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
public enum EMove
{
Top = 1,
@ -8,4 +8,3 @@
Bottom = 4,
Position = 5
}
}

View file

@ -1,5 +1,5 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
public enum EServerColName
{
def = 0,
@ -19,4 +19,3 @@
totalDown,
totalUp
}
}

View file

@ -1,5 +1,5 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
public enum ESpeedActionType
{
Ping,
@ -8,4 +8,3 @@
Speedtest,
Mixedtest
}
}

View file

@ -1,5 +1,5 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
public enum ESysProxyType
{
ForcedClear = 0,
@ -7,4 +7,3 @@
Unchanged = 2,
Pac = 3
}
}

View file

@ -1,8 +1,7 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
public enum EViewAction
{
AdjustMainLvColWidth,
ProfilesFocus
}
}

View file

@ -1,7 +1,7 @@
using Newtonsoft.Json;
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
public class GitHubReleaseAsset
{
[JsonProperty("url")] public string Url { get; set; }
@ -65,4 +65,3 @@ namespace v2rayN.Mode
[JsonProperty("body")] public string Body { get; set; }
}
}

View file

@ -1,7 +1,7 @@
using SQLite;
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
[Serializable]
public class ProfileExItem
{
@ -12,4 +12,3 @@ namespace v2rayN.Mode
public decimal speed { get; set; }
public int sort { get; set; }
}
}

View file

@ -1,8 +1,8 @@
using SQLite;
using v2rayN.Base;
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
[Serializable]
public class ProfileItem
{
@ -192,4 +192,3 @@ namespace v2rayN.Mode
public string shortId { get; set; }
public string spiderX { get; set; }
}
}

View file

@ -1,5 +1,5 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
[Serializable]
public class ProfileItemModel : ProfileItem
{
@ -15,4 +15,3 @@
public string totalUp { get; set; }
public string totalDown { get; set; }
}
}

View file

@ -1,7 +1,7 @@
using SQLite;
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
[Serializable]
public class RoutingItem
{
@ -19,4 +19,3 @@ namespace v2rayN.Mode
public string domainStrategy4Singbox { get; set; }
public int sort { get; set; }
}
}

View file

@ -1,8 +1,7 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
[Serializable]
public class RoutingItemModel : RoutingItem
{
public bool isActive { get; set; }
}
}

View file

@ -1,5 +1,5 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
[Serializable]
public class RulesItem
{
@ -22,4 +22,3 @@
public bool enabled { get; set; } = true;
}
}

View file

@ -1,5 +1,5 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
[Serializable]
public class RulesItemModel : RulesItem
{
@ -11,4 +11,3 @@
public string protocols { get; set; }
}
}

View file

@ -1,5 +1,5 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
[Serializable]
internal class ServerSpeedItem : ServerStatItem
{
@ -37,4 +37,3 @@
get; set;
}
}
}

View file

@ -1,7 +1,7 @@
using SQLite;
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
[Serializable]
public class ServerStatItem
{
@ -36,4 +36,3 @@ namespace v2rayN.Mode
get; set;
}
}
}

View file

@ -1,5 +1,5 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
[Serializable]
internal class ServerTestItem
{
@ -10,4 +10,3 @@
public bool allowTest { get; set; }
public int delay { get; set; }
}
}

View file

@ -1,5 +1,5 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
public class SingboxConfig
{
public Log4Sbox log { get; set; }
@ -209,4 +209,3 @@
public string inet4_range { get; set; }
public string inet6_range { get; set; }
}
}

View file

@ -1,5 +1,5 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
public class SsSIP008
{
public List<SsServer> servers { get; set; }
@ -15,4 +15,3 @@
public string password { get; set; }
public string plugin { get; set; }
}
}

View file

@ -1,7 +1,7 @@
using SQLite;
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
[Serializable]
public class SubItem
{
@ -28,4 +28,3 @@ namespace v2rayN.Mode
public string? convertTarget { get; set; }
}
}

View file

@ -1,5 +1,5 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
internal class SysproxyConfig
{
public bool UserSettingsRecorded;
@ -17,4 +17,3 @@
PacUrl = "";
}
}
}

View file

@ -1,7 +1,7 @@
using Newtonsoft.Json;
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
/// <summary>
/// v2ray配置文件实体类
/// 例子SampleConfig.txt
@ -632,4 +632,3 @@ namespace v2rayN.Mode
/// </summary>
public string pass { get; set; }
}
}

View file

@ -1,5 +1,5 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
/// <summary>
/// Tcp伪装http的Request只要Host
/// </summary>
@ -18,4 +18,3 @@
/// </summary>
public List<string> Host { get; set; }
}
}

View file

@ -1,5 +1,5 @@
namespace v2rayN.Mode
{
namespace v2rayN.Mode;
/// <summary>
/// https://github.com/2dust/v2rayN/wiki/
/// </summary>
@ -81,4 +81,3 @@
/// </summary>
public string fp { get; set; } = string.Empty;
}
}

View file

@ -2,8 +2,8 @@
using System.IO.Compression;
using System.Text;
namespace v2rayN.Tool
{
namespace v2rayN.Tool;
public static class FileManager
{
public static bool ByteArrayToFile(string fileName, byte[] content)
@ -87,4 +87,3 @@ namespace v2rayN.Tool
return true;
}
}
}

View file

@ -1,8 +1,8 @@
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace v2rayN
{
namespace v2rayN;
/*
* See:
* http://stackoverflow.com/questions/6266820/working-example-of-createjobobject-setinformationjobobject-pinvoke-in-net
@ -173,4 +173,3 @@ namespace v2rayN
}
#endregion Helper classes
}

View file

@ -3,8 +3,8 @@ using NLog.Config;
using NLog.Targets;
using System.IO;
namespace v2rayN.Tool
{
namespace v2rayN.Tool;
public class Logging
{
public static void Setup()
@ -52,4 +52,3 @@ namespace v2rayN.Tool
});
}
}
}

View file

@ -1,8 +1,8 @@
using System.Linq.Expressions;
using System.Reflection;
namespace v2rayN.Tool
{
namespace v2rayN.Tool;
public static class QueryableExtension
{
public static IOrderedQueryable<T> OrderBy<T>(this IQueryable<T> query, string propertyName)
@ -47,4 +47,3 @@ namespace v2rayN.Tool
return lamba;
}
}
}

View file

@ -1,7 +1,7 @@
using v2rayN.Base;
namespace v2rayN.Tool
{
namespace v2rayN.Tool;
public class SemanticVersion
{
private int major;
@ -179,4 +179,3 @@ namespace v2rayN.Tool
#endregion Private
}
}

View file

@ -1,7 +1,7 @@
using System.Windows;
namespace v2rayN
{
namespace v2rayN;
internal class UI
{
private static readonly string caption = "v2rayN";
@ -21,4 +21,3 @@ namespace v2rayN
return MessageBox.Show(msg, caption, MessageBoxButton.YesNo, MessageBoxImage.Question);
}
}
}

View file

@ -22,6 +22,7 @@ using System.Windows;
using System.Windows.Interop;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Xml.Serialization;
using v2rayN.Base;
using v2rayN.Mode;
using ZXing;
@ -29,8 +30,8 @@ using ZXing.Common;
using ZXing.QrCode;
using ZXing.Windows.Compatibility;
namespace v2rayN
{
namespace v2rayN;
internal class Utils
{
#region Json操作
@ -907,7 +908,7 @@ namespace v2rayN
{
object retval;
MemoryStream ms = new MemoryStream();
BinaryFormatter bf = new BinaryFormatter();
XmlSerializer bf = new XmlSerializer(obj.GetType());
//序列化成流
bf.Serialize(ms, obj);
ms.Seek(0, SeekOrigin.Begin);
@ -1274,4 +1275,3 @@ namespace v2rayN
#endregion Windows API
}
}

View file

@ -11,8 +11,8 @@ using v2rayN.Handler;
using v2rayN.Mode;
using v2rayN.Resx;
namespace v2rayN.ViewModels
{
namespace v2rayN.ViewModels;
public class AddServer2ViewModel : ReactiveValidationObject
{
private static Config _config;
@ -157,4 +157,3 @@ namespace v2rayN.ViewModels
}
}
}
}

View file

@ -8,8 +8,8 @@ using v2rayN.Handler;
using v2rayN.Mode;
using v2rayN.Resx;
namespace v2rayN.ViewModels
{
namespace v2rayN.ViewModels;
public class AddServerViewModel : ReactiveObject
{
private static Config _config;
@ -159,4 +159,3 @@ namespace v2rayN.ViewModels
}
}
}
}

View file

@ -7,8 +7,8 @@ using v2rayN.Handler;
using v2rayN.Mode;
using v2rayN.Resx;
namespace v2rayN.ViewModels
{
namespace v2rayN.ViewModels;
public class DNSSettingViewModel : ReactiveObject
{
private static Config _config;
@ -107,4 +107,3 @@ namespace v2rayN.ViewModels
_view.DialogResult = true;
}
}
}

View file

@ -22,8 +22,8 @@ using v2rayN.Resx;
using v2rayN.Tool;
using v2rayN.Views;
namespace v2rayN.ViewModels
{
namespace v2rayN.ViewModels;
public class MainWindowViewModel : ReactiveObject
{
#region private prop
@ -1843,4 +1843,3 @@ namespace v2rayN.ViewModels
#endregion UI
}
}

View file

@ -7,8 +7,8 @@ using v2rayN.Handler;
using v2rayN.Mode;
using v2rayN.Resx;
namespace v2rayN.ViewModels
{
namespace v2rayN.ViewModels;
public class OptionSettingViewModel : ReactiveObject
{
private static Config _config;
@ -365,4 +365,3 @@ namespace v2rayN.ViewModels
return 0;
}
}
}

View file

@ -8,8 +8,8 @@ using v2rayN.Handler;
using v2rayN.Mode;
using v2rayN.Resx;
namespace v2rayN.ViewModels
{
namespace v2rayN.ViewModels;
public class RoutingRuleDetailsViewModel : ReactiveObject
{
private static Config _config;
@ -102,4 +102,3 @@ namespace v2rayN.ViewModels
_view.DialogResult = true;
}
}
}

View file

@ -12,8 +12,8 @@ using v2rayN.Resx;
using v2rayN.Views;
using Application = System.Windows.Application;
namespace v2rayN.ViewModels
{
namespace v2rayN.ViewModels;
public class RoutingRuleSettingViewModel : ReactiveObject
{
private static Config _config;
@ -357,4 +357,3 @@ namespace v2rayN.ViewModels
#endregion Import rules
}
}

View file

@ -10,8 +10,8 @@ using v2rayN.Mode;
using v2rayN.Resx;
using v2rayN.Views;
namespace v2rayN.ViewModels
{
namespace v2rayN.ViewModels;
public class RoutingSettingViewModel : ReactiveObject
{
private static Config _config;
@ -305,4 +305,3 @@ namespace v2rayN.ViewModels
}
}
}
}

View file

@ -8,8 +8,8 @@ using v2rayN.Handler;
using v2rayN.Mode;
using v2rayN.Resx;
namespace v2rayN.ViewModels
{
namespace v2rayN.ViewModels;
public class SubEditViewModel : ReactiveObject
{
private static Config _config;
@ -83,4 +83,3 @@ namespace v2rayN.ViewModels
}
}
}
}

View file

@ -12,8 +12,8 @@ using v2rayN.Mode;
using v2rayN.Resx;
using v2rayN.Views;
namespace v2rayN.ViewModels
{
namespace v2rayN.ViewModels;
public class SubSettingViewModel : ReactiveObject
{
private static Config _config;
@ -127,4 +127,3 @@ namespace v2rayN.ViewModels
await DialogHost.Show(dialog, "SubDialog");
}
}
}

View file

@ -1,9 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<GenerateSatelliteAssembliesForCore>true</GenerateSatelliteAssembliesForCore>
<OutputType>WinExe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework>
<TargetFramework>net7.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
<ApplicationManifest>app.manifest</ApplicationManifest>
@ -12,23 +11,21 @@
<Copyright>Copyright © 2017-2023 (GPLv3)</Copyright>
<FileVersion>6.28</FileVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Downloader" Version="3.0.6" />
<PackageReference Include="MaterialDesignThemes" Version="4.9.0" />
<PackageReference Include="H.NotifyIcon.Wpf" Version="2.0.108" />
<PackageReference Include="H.NotifyIcon.Wpf" Version="2.0.115" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="QRCoder.Xaml" Version="1.4.3" />
<PackageReference Include="sqlite-net-pcl" Version="1.8.116" />
<PackageReference Include="TaskScheduler" Version="2.10.1" />
<PackageReference Include="ZXing.Net.Bindings.Windows.Compatibility" Version="0.16.12" />
<PackageReference Include="ReactiveUI.Fody" Version="18.4.1" />
<PackageReference Include="ReactiveUI.Validation" Version="3.0.22" />
<PackageReference Include="ReactiveUI.Validation" Version="3.1.7" />
<PackageReference Include="ReactiveUI.WPF" Version="18.4.1" />
<PackageReference Include="Splat.NLog" Version="14.6.37" />
<PackageReference Include="Splat.NLog" Version="14.7.1" />
<PackageReference Include="System.Reactive" Version="6.0.0" />
</ItemGroup>
<ItemGroup>
<AdditionalFiles Include="app.manifest" />
<EmbeddedResource Include="Sample\SingboxSampleClientConfig">
@ -86,12 +83,10 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Resource>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\PacLib\PacLib.csproj" />
<ProjectReference Include="..\ProtosLib\ProtosLib.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Update="Resx\ResUI.Designer.cs">
<DesignTime>True</DesignTime>
@ -99,7 +94,6 @@
<DependentUpon>ResUI.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Resx\ResUI.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
@ -118,5 +112,4 @@
<Generator>PublicResXFileCodeGenerator</Generator>
</EmbeddedResource>
</ItemGroup>
</Project>

View file

@ -6,8 +6,8 @@ using System.Text;
using System.Web;
using System.Windows.Forms;
namespace v2rayUpgrade
{
namespace v2rayUpgrade;
public partial class MainForm : Form
{
private readonly string defaultFilename = "v2ray-windows.zip";
@ -145,4 +145,3 @@ namespace v2rayUpgrade
return Path.Combine(startupPath, fileName);
}
}
}

View file

@ -1,13 +1,10 @@
using System;
using System.Windows.Forms;
namespace v2rayUpgrade
{
namespace v2rayUpgrade;
internal static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
private static void Main(string[] args)
{
@ -17,4 +14,3 @@ namespace v2rayUpgrade
Application.Run(new MainForm(args));
}
}
}

View file

@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0-windows</TargetFramework>
<TargetFramework>net7.0-windows</TargetFramework>
<OutputType>WinExe</OutputType>
<UseWindowsForms>true</UseWindowsForms>
<Copyright>Copyright © 2019-2023 (GPLv3)</Copyright>