小编FCi*_*Cin的帖子

手机进入睡眠状态后,保持wifi在前台服务中处于活动状

我想在手机锁定时从wifi接收数据包.问题是,当我锁定屏幕时,我的前台服务停止接收数据包.我正在使用Foreground Service,如下所示:

public override StartCommandResult OnStartCommand(Intent intent, StartCommandFlags flags, int startId)
{
    var notification = new Notification.Builder(this)
        .SetContentTitle(Resources.GetString(Resource.String.app_name))
        .SetContentText(Resources.GetString(Resource.String.notification_text))
        .SetSmallIcon(Resource.Drawable.ic_stat_name)
        .SetContentIntent(BuildIntentToShowMainActivity())
        .SetOngoing(true)
        .AddAction(BuildRestartTimerAction())
        .AddAction(BuildStopServiceAction())
        .Build();


    // Enlist this instance of the service as a foreground service
    StartForeground(Constants.SERVICE_RUNNING_NOTIFICATION_ID, notification);

    /*DO THIS EVEN WHEN SCREEN IS LOCKED*/

    var powerManager = (PowerManager)GetSystemService(PowerService);
    _wakeLock = powerManager.NewWakeLock(WakeLockFlags.Partial, "WakeLockTag");
    _wakeLock.Acquire();

    var wifiManager = (WifiManager)GetSystemService(WifiService);
    _wifiLock = wifiManager.CreateWifiLock(WifiMode.FullHighPerf, "xamarin_wifi_lock");
    _wifiLock.Acquire();

    if (!powerManager.IsIgnoringBatteryOptimizations("com.xamarin.xample.foregroundservicedemo") ||
        !_wakeLock.IsHeld || !_wifiLock.IsHeld)
        throw new InvalidOperationException("OPTIMIZATIONS NOT ACTIVE");

    string msg = timestamper.GetFormattedTimestamp();
    Log.Debug(TAG, msg); …
Run Code Online (Sandbox Code Playgroud)

c# android xamarin.android xamarin xamarin.forms

22
推荐指数
1
解决办法
1046
查看次数

编译打字稿时排除文件夹

我使用 Atom 编写代码。它用于tsconfig.json包含和排除文件夹。为了使用智能感知,我需要node_modules被包含在内,但是当我想编译它时,js我不想node_modules被编译。所以我需要调用tsc上层文件夹config.ts,这会导致编译整个node_modules.

我的文件夹结构如下所示:

node_modules
config.ts
spec
  |--test1.ts
  |--test2.ts
Run Code Online (Sandbox Code Playgroud)

知道如何node_modules在使用tsc命令编译时排除吗?

javascript typescript tsc

12
推荐指数
1
解决办法
2万
查看次数

在DataGrid中绑定自定义标头控件

我有一个自定义的列标题其中每列的头有TextBox它包含列的名称和ComboBox,其中包含有关列的类型,如"日期"的信息,"数字"等

我正在尝试绑定ComboBox并保持其值在某处,以便当用户从中选择新值时,ComboBox可以重新创建表,并更改列的类型.基本上我只需要以某种方式以某种方式将每个ComboBox值存储在列表中.我想做同样的事情TextBox应该包含列的名称.

这就是我到目前为止所拥有的.

<DataGrid x:Name="SampleGrid" Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="2" ItemsSource="{Binding SampledData}">
            <DataGrid.Resources>
                <Style TargetType="{x:Type DataGridColumnHeader}">
                    <Setter Property="ContentTemplate">
                        <Setter.Value>
                            <DataTemplate>
                                <StackPanel>
                                    <TextBox Text="{Binding ., Mode=OneWay}"/>
                                    <ComboBox>
                                        // How can I set it from ViewModel?
                                        <ComboBoxItem Content="Date"></ComboBoxItem>
                                        <ComboBoxItem Content="Number"></ComboBoxItem>
                                    </ComboBox>
                                </StackPanel>
                            </DataTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </DataGrid.Resources>
        </DataGrid>
Run Code Online (Sandbox Code Playgroud)

视图模型:

private DataTable _sampledData = new DataTable();

public DataTable SampledData
{
    get => _sampledData;
    set { _sampledData = value; NotifyOfPropertyChange(() => SampledData); }
} …
Run Code Online (Sandbox Code Playgroud)

c# data-binding wpf caliburn.micro

7
推荐指数
1
解决办法
747
查看次数

在dbcontext中的请求之间存储数据

我有一个使用razor进行服务器端渲染的页面,您可以在其中添加来自不同列表的几个元素,填写一些字段并在提交时从中创建请求.

每次从任何列表添加/获取项目时,我都会将具有提交按钮的帖子发送到特定操作,例如"CustomerSelected".我这样做,因为我需要为添加的项重新创建其他视图组件.在这些方法中,我想将添加的对象添加到db上下文中,因此在提交时我可以说SaveChanges(),而不必在同一方法中组装所有内容.但在.net核心数据库上下文是每个请求,建议保持这种方式.在这种情况下,我如何在请求之间存储这些临时实体对象,以后如果有人决定提交它们,我可以说SaveChanges()或丢弃它们?

我想要这样的东西:

public IActionResult CustomerAdded(int customerId)
{
    var customer = _context.Customers.First(c => c.IdCustomer == customerId);
    var message = _context.Messages.First(m => m.IdMessage = _idMessage);
    message.Customers.Add(customer);
    return View();
}

public IActionResult ItemAdded(int itemId)
{
    var item = _context.Items.First(c => c.IdItem == itemId);
    var message = _context.Messages.First(m => m.IdMessage = _idMessage);
    message.Items.Add(item);
    return View();
}

public IActionResult Submit()
{
    _context.SaveChanges();
    return View();
}
Run Code Online (Sandbox Code Playgroud)

如果这是不可能的,那么我正在考虑在每个方法中添加单个元素并将它们保存在那里并在提交时我将构建最后的最终元素.但如果有人在没有提交的情况下关闭浏览器,那么我的数据库中存在不完整的数据.我必须运行某种工作来删除它们,这对于这么简单的任务来说似乎太过分了.

c# dbcontext entity-framework-core asp.net-core-mvc asp.net-core

7
推荐指数
1
解决办法
448
查看次数

为什么同步代码在异步等待的任务中比异步代码慢得多

我一直在玩无聊,同时从wiki中检索随机文章.首先我写了这段代码:

private async void Window_Loaded(object sender, RoutedEventArgs e)
{
    await DownloadAsync();
}

private async Task DownloadAsync()
    {
        Stopwatch sw = new Stopwatch();
        sw.Start();
        var tasks = new List<Task>();
        var result = new List<string>();

        for (int index = 0; index < 60; index++)
        {
            var task = Task.Run(async () => {
                var scheduledAt = DateTime.UtcNow.ToString("mm:ss.fff");
                using (var client = new HttpClient())
                using (var response = await client.GetAsync("https://en.wikipedia.org/wiki/Special:Random"))
                using (var content = response.Content)
                {
                    var page = await content.ReadAsStringAsync();
                    var receivedAt = …
Run Code Online (Sandbox Code Playgroud)

c# wpf asynchronous async-await

6
推荐指数
1
解决办法
122
查看次数

如何在 p5.js 中旋转图像

我需要旋转图像,但我的代码没有围绕中心旋转它,我不明白为什么。当我运行它时,我看不到它,所以我怀疑它是在屏幕之外绘制的。

push();
rotate(PI / 2 * rotation);
imageMode(CENTER);
image(this.texture, centerPosX, centerPosY);
pop();
Run Code Online (Sandbox Code Playgroud)

当我删除时rotate,它会正确绘制图像,但我需要旋转它。

javascript p5.js

5
推荐指数
2
解决办法
9919
查看次数

EF Core - 如何在实体框架核心中启用延迟加载?

我已经将 Read Context 与 Write Now 分开了,默认情况下我将在 ReadOnlyContext 中启用 LazyLoading。我也用了下面的方法,可惜不行。

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    optionsBuilder
        .UseLazyLoadingProxies()
        .UseSqlServer(@"Data Source=.;Initial Catalog=UniversityDb;Persist Security Info=True;User ID=admin;Password=asdasdsadasd");
}
Run Code Online (Sandbox Code Playgroud)

我的模型:

public class Partner : BaseEntity<int>
{
    public string Name { get; set; }
    public DateTime CreateDate { get; set; }
    public bool IsDisabled { get; set; }
    public bool IsDeleted { get; set; }
    public virtual ICollection<PartnerUser> PartnerUsers { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的 ef 版本:

EntityFramework 核心 v 2.1.2

public async Task<PartnerQuery> Get(int …
Run Code Online (Sandbox Code Playgroud)

entity-framework lazy-loading entity-framework-core .net-core

5
推荐指数
1
解决办法
5461
查看次数

获取所有方法调用

假设我有一个简单的项目

class Program : TestBase
{
    static void Main(string[] args)
    {

    }

    public void Test()
    {
        AddItem(new Item());
        AddItem(new Item());
    }
}

public class Item { }

public class TestBase
{
    public virtual void AddItem(Item vertex) { }
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能提取 AddItem(new Item());使用 VSSDK?我想知道传递给它的参数以及它在文本编辑器中的哪一行。

我试图寻找CodeElement.Kind,但不幸的vsCMElement.vsCMElementFunctionInvokeStmt是没有返回任何东西。有没有其他方法可以提取这些信息?

public static async Task InitializeAsync(AsyncPackage package)
{
    // ...
    _dte = (await package.GetServiceAsync(typeof(DTE))) as DTE2;

    await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(package.DisposalToken);
    var sandboxProject = _dte.Solution.Projects;

    var codeItems = new List<string>();

    if (!ThreadHelper.CheckAccess())
        return;

    foreach (Project …
Run Code Online (Sandbox Code Playgroud)

c# vssdk

5
推荐指数
1
解决办法
852
查看次数

从字符串中提取MAC地址

我有一个像这样的字符串: 00:1E:AE:4F:20:0BDntl3l

我想00:1E:AE:4F:20:0B使用正则表达式从字符串中提取mac地址并丢弃Dntl3l.我怎样才能在c#中实现这一目标?

我已经尝试了下面的代码,但它仍然返回相同的字符串.

    string s = "00:1E:AE:4F:20:0BDntl3l";
    var regex = "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$";
    var newformat = Regex.Match(s, regex);
    Console.WriteLine(newformat);
Run Code Online (Sandbox Code Playgroud)

c#

1
推荐指数
1
解决办法
261
查看次数