日常随笔
linq与lamda
//查找片段字符在全文字符当中的索引,最小值是0,如果<-1则代表未匹配到
“全文字符”.IndexOf(“片段字符”, StringComparison.OrdinalIgnoreCase)
C#系列
判断文件是否被占用
public class FileStatus {
[DllImport("kernel32.dll")]
private static extern IntPtr _lopen(string lpPathName, int iReadWrite);
[DllImport("kernel32.dll")]
private static extern bool CloseHandle(IntPtr hObject);
private const int OF_READWRITE = 2;
private const int OF_SHARE_DENY_NONE = 0x40;
private static readonly IntPtr HFILE_ERROR = new IntPtr(-1);
public static int FileIsOpen(string fileFullName)
{
if (!File.Exists(fileFullName))
{
return -1;// 不存在文件
}
IntPtr handle = _lopen(fileFullName, OF_READWRITE | OF_SHARE_DENY_NONE);
if (handle == HFILE_ERROR)
{
return 1;// 表示被占用
}
CloseHandle(handle);
return 0;
}
}
EF分库、分表、分模式、多租户
Maui学习记录
MauiProgram引入扩展
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder.UseMauiApp<App>();
builder.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
});
builder.UsePrism(prism =>
{
prism.ConfigureServices(service =>
{
RestClientOptions restClientOptions = new()
{
//restClientOptions.RemoteCertificateValidationCallback += (sender, cert, chain, error) => true;
BaseUrl = new Uri("https://dynamicapi.lingyanspace.com"),
MaxRedirects = 5,
Timeout = TimeSpan.FromMinutes(3),
ThrowOnAnyError = true
};
RestClient restClient = new(restClientOptions);
service.AddSingleton(restClient);
service.AddSingleton<ICourseService, CourseService>();
});
prism.RegisterTypes(container =>
{
//注册MainPage到导航
container.RegisterForNavigation<MainPage>();
container.RegisterForRegionNavigation<HomeView, HomeViewModel>();
});
prism.OnInitialized((container) =>
{
var regionManager = container.Resolve<IRegionManager>();
regionManager.RegisterViewWithRegion("MainRegion", nameof(HomeView));
});
//导航到根目录
prism.CreateWindow(navigationService => navigationService.NavigateAsync($"/{nameof(MainPage)}"));
});
#if DEBUG
builder.Logging.AddDebug();
#endif
return builder.Build();
}
}
主页面添加区域
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage
x:Class="LearnMirro.MainPage"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:prism="http://prismlibrary.com"
Title="MainPage"
Background="#eee">
<ContentView prism:RegionManager.RegionName="MainRegion" />
</ContentPage>