小编Bio*_*ode的帖子

Google在6月17日更新Firebase SDK后,Ionic Cordova应用程序停止了编译

在Firebase主要版本更新后,尤其是2019年6月17日更新之后,我无法编译Ionic Cordova App。

我尝试降级到Android Cordova 6.3.0,但我的项目必须为7.0.0。

这是我的离子信息:

@ionic/cli-utils  : 1.19.2
    ionic (Ionic CLI) : 3.20.0

global packages:

    cordova (Cordova CLI) : 8.0.0

local packages:

    @ionic/app-scripts : 3.2.1
    Cordova Platforms  : android 7.0.0 browser 5.0.4
    Ionic Framework    : ionic-angular 3.9.3

System:

    Android SDK Tools : 26.1.1
    Node              : v8.9.1
    npm               : 5.5.1
    OS                : Windows 10

Environment Variables:

    ANDROID_HOME : C:\Development\android-sdk

Misc:

    backend : pro
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

:app:processDebugResources C:\ Users \ mmzep.gradle \ caches \ transforms-1 \ files-1.1 \ core-1.0.0.aar \ 73b4a83ab5e76f20c84a66b1c8444d08 …

android cordova firebase ionic-framework ionic3

26
推荐指数
4
解决办法
6814
查看次数

让RichTextBox在添加内容时自动滚动到底部

我有一个 WPF 用户控件,其中包含BindableRichTextBox

xmlns:controls="clr-namespace:SysadminsLV.WPF.OfficeTheme.Controls;assembly=Wpf.OfficeTheme"
.
.
.
<controls:BindableRichTextBox Background="Black"
                              Foreground="White"
                              FontFamily="Consolas"
                              FontSize="12"
                              IsReadOnly="True"
                              IsReadOnlyCaretVisible="True"
                              VerticalScrollBarVisibility="Auto"
                              IsUndoEnabled="False"
                              Document="{Binding Contents}"/>
Run Code Online (Sandbox Code Playgroud)

内容由 ViewModel 属性控制Document

using System.Windows.Documents;

class MyViewModel : ILogServerContract 
{
    readonly Paragraph _paragraph;

    public MyViewModel() 
    {
        _paragraph = new Paragraph();
        Contents = new FlowDocument(_paragraph);
    }

    public FlowDocument Contents { get; }

    //Log Server Contract Write method (accessed via NetPipe)
    public void WriteLine(string text, int debugLevel) 
    {
        //figure out formatting stuff based on debug level. not important
        _paragraph.Inlines.Add(new Run(text) …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml

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

澄清工厂方法设计模式的UML类图

我正在学习工厂方法设计模式,并在教程中发现了以下类图。我理解产品和具体产品部分,但 Creator 和 ConcreteCreator 部分对我来说有点模糊。如果有人澄清 UML 图,我将不胜感激。谢谢。 在此处输入图片说明

uml design-patterns factory-pattern

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

如何添加验证以查看模型属性或如何实现 INotifyDataErrorInfo

我有一个 ObservableCollection 类型的数据集合(比如 myClassTypes 实例)。在一些用户操作之后,这个 myClassTypes 填充了 ViewModel 中的值。在视图中,有一个文本框,用户可以在其中输入文本。我需要根据 myClassTypes 值验证文本框数据。因此,如果 myClassTypes 包含用户在文本框中插入的文本,则验证通过,否则将失败。我的代码片段是:ViewModel:

public ObservableCollection < MyClassType > ViewModelClassTypes {
    get {

        return _myClassTypes;
    }
    set {
        _myClassTypes = value;
        NotifyOfPropertyChange(() = >MyClassTypes);
    }
}

public class TestValidationRule: ValidationRule {
    public ObservableCollection < MyClassType > MyClassTypes {
        get = >(ObservableCollection < MyClassType > ) GetValue(MyClassTypesProperty);
        set = >SetValue(MyClassTypesProperty, value);
    }
}
Run Code Online (Sandbox Code Playgroud)

仅供参考:MyClassTypesProperty 是一个依赖属性

我的 View.xaml 是:

<TextBox>
    <TextBox.Text>
        <Binding UpdateSourceTrigger="PropertyChanged">
            <Binding.ValidationRules>
                <validationRules:TestValidationRule MyClassTypes="{Binding ViewModelClassTypes}"/>
            </Binding.ValidationRules>
        </Binding>
    </TextBox.Text>
</TextBox>
Run Code Online (Sandbox Code Playgroud)

我无法在 MyClassTypes …

validation wpf mvvm viewmodel inotifydataerrorinfo

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

Flutter:一个程序在调试模式下运行良好,但在发布后运行良好,为什么?

我的项目在调试模式下一切正常,但发布后,除了一个程序外,一切正常。

这是程序:

 Future<void> downloadFile() async{
Dio dio = Dio();

var directory = await getApplicationDocumentsDirectory();
await dio.download(bookUrl, "${directory.path}/$className + $bookName.pdf",
onReceiveProgress: (rec, total){
  setState(() {
    downloading = true;
    percentage = ((rec/total) * 100).toStringAsFixed(0)+'%';
  });
}

);

setState(() {
  downloading = false;
  percentage = 'Download Completed';
});
Run Code Online (Sandbox Code Playgroud)

}

这是发布应用程序运行时我收到的错误消息:

E/flutter (25796): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] 未处理的异常:DioError [DioErrorType.DEFAULT]:SocketException:主机查找失败:'www.ets.org'(操作系统错误:没有与主机名关联的地址,errno = 7) E/flutter (25796): #0 Dio._makeRequest (package:dio/src/dio.dart:799) E/flutter (25796): E/flutter (25796): # 1 Dio._request.. (package:dio/src/dio.dart:711) E/flutter (25796): #2 _rootRunUnary (dart:async/zone.dart:1132) E/flutter (25796): #3 _CustomZone .runUnary (dart:async/zone.dart:1029) E/flutter (25796): …

debugging release flutter

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

C# WPF 页面(视图)之间的导航

我正在尝试创建一个类和方法,可以在任何窗口和页面上使用它来更改 MainWindow 窗口上显示的当前页面。

到目前为止我得到了:

class MainWindowNavigation : MainWindow
{
    public MainWindow mainWindow;

   public void ChangePage(Page page)
    {
        mainWindow.Content = page;
    }
}
Run Code Online (Sandbox Code Playgroud)

主窗口本身:

public MainWindow()
    {
        InitializeComponent();
        MainWindowNavigation mainWindow = new MainWindowNavigation();
        mainWindow.ChangePage(new Pages.MainWindowPage());
    }
Run Code Online (Sandbox Code Playgroud)

不幸的是,这最终导致了 System.StackOverflowException。

创建此内容的主要原因是我希望能够从当前显示在 mainWindow.Content 中的页面更改 mainWindow.Content。

我已经审查过 MVVM,但我认为不值得将它用于像这样的小型应用程序,因为我想要它做的就是在打开时显示欢迎页面,然后在侧面会有几个按钮。一旦按下, mainWindow.Content 正确地更改为用户可以输入登录详细信息的页面,然后按下登录页面上的按钮,我想在成功验证输入的登录详细信息后将 mainWindow.Content 更改为不同的页面。

c# navigation wpf

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

如何使GlideApp与androidx兼容?

我最近将我的应用程序从AppCompat迁移到Androidx,但现在GlideApp面临严重问题。每当我尝试构建项目时,它都会显示编译失败。

我尝试更改以下导入语句,

import android.support.annotation.CheckResult;
import android.support.annotation.NonNull;
Run Code Online (Sandbox Code Playgroud)

在构建文件夹中:

import androidx.annotation.CheckResult;
import androidx.annotation.NonNull;
Run Code Online (Sandbox Code Playgroud)

但是每当我重建它时,它只会重新生成以前的import语句并返回以下错误:

错误:程序包android.support.annotation不存在错误:找不到符号类NonNull

android-studio androidx

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

干净的架构实体

据我了解,清洁架构实体被布置为所有上层都直接或间接依赖的层,基于这样的假设:实体中的数据和业务规则是架构中最稳定的部分。

同时,实体包含父层所依赖的数据类,如果没有映射器用于数据,则其余的数据类。

但现实中的数据往往不够稳定。

下面是一个示例:假设您有一个用于销售汽车的应用程序。汽车数据由一个结构体来描述,其中包含描述、品牌、价格等参数。要求正在发生变化,现在,应用程序中与汽车混合在一起,应该有摩托车销售广告。有些字段与汽车相同,例如价格和描述,有些字段不同。

您无法将有关汽车和摩托车的数据放入一个结构中,因为这样就可以添加任何类型的广告,并且该结构将像癌瘤一样膨胀。

在更高级别实现多态行为也不起作用,因为这将生成结构本身的依赖项+层次结构中的循环依赖项,或者直接从上层到该结构的依赖项,这也很糟糕。当然,您可以在整个映射器链中重复此行为,但这需要很长时间并且会增加代码量。

仍然需要创建一个单独的数据类型和转发该数据的整个分支,这同样不方便,并且会在顶层添加依赖项。

给人的印象是,当数据发生变化时,清洁架构是脆弱的。

也许我不明白一些基本的东西,这个问题可以轻松解决吗?如果是这样,请写下到底是什么,如果不是 - 你能做点什么吗?)

architecture android clean-architecture

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

带有异步Task.Run方法的死锁以及来自Synchronus方法的等待和超时

我有一个方法定义为:

public Task<ReturnsMessage> Function() {
var task = Task.Run(() =>
{
     var result = SyncMethod();
     return new ReturnMessage(result);
});

 if (task.Wait(delay)) {
           return task;
}

  var tcs = new TaskCompletionSource<ReturnMessage>();
            tcs.SetCanceled();
            return tcs.Task;
}
Run Code Online (Sandbox Code Playgroud)

现在在基于maxAttempts值的循环中调用它:

(方法名RetryableInvoke)

 for (var i = 0; i < maxAttempts; i++)
 {
    try
    {
        return Function().Result;
    }
    catch (Exception e)
    {
    }
  }

Run Code Online (Sandbox Code Playgroud)

它工作正常,但是当负载很大时,我发现线程急剧增加,转储向我显示此警告:

在此处输入图片说明 谁能建议我应对这种情况的最佳方法,以免出现任何死锁?

.net c# deadlock async-await asp.net-web-api

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

异步等待与Task同步的事件/操作,同时使用CefSharp从Web浏览器/网页获取屏幕截图

我想做的是以下几点:

我有一个CefSharp ChromiumWebBrowser(WPF控件),我想在该浏览器中截取网页的屏幕截图。屏幕ChromiumWebBrowser上没有获取屏幕截图的方法。但是我可以通过将事件处理程序附加到OnPaint浏览器的事件来获取渲染。这样,我得到的位图就是屏幕截图。该过程基于以下答案:https : //stackoverflow.com/a/54236602/2190492

现在,我正在创建一个类CefSharpScreenshotRecorder,该类负责拍摄屏幕截图。它应该接受浏览器实例,将事件处理程序附加到OnPaint事件,并获取位图。该过程的所有状态都应封装在CefSharpScreenshotRecorder该类中。我希望能够异步使用我的课程。因为我们必须等到OnPaint事件被触发。触发该事件(并调用事件处理程序)后,该事件处理程序中将提供一个位图。然后,该位图应该是最初调用的异步方法的结果(如CefSharpScreenshotRecorder.TakeScreenshot(...cefBrowserInstance...)。当然,所有事情都必须在不阻塞/滞后UI的情况下发生。

我对C#中的异步编程不是很熟悉。我遇到的问题是,我找不到找到一种可以等待的方法的方法,该方法仅在被调用时代表OnPaint事件处理程序返回。我什至不知道是否存在任何代码功能来创建此逻辑。

c# wpf screenshot async-await cefsharp

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