小编bat*_*aci的帖子

如何在Xamarin.Forms Android应用程序中使用D8,R8?

我刚才下载Vs的2019前和它xamarin Android提供了更多的配置说明这里

它建议按以下方式使用,并告知proguard不能与r8一起使用,因为它可以替代proguard。

<Project>
    <PropertyGroup>
        <AndroidEnableMultiDex>True</AndroidEnableMultiDex>
        <AndroidDexTool>d8</AndroidDexTool>
        <AndroidLinkTool>r8</AndroidLinkTool>
    </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

但我真的不明白r8应该如何工作?因为使用proguard,我已经做了很多配置,例如定义保留哪个库,类,函数。所以我们不需要这些吗?只需设置r8即可?我已经按照建议尝试了,但出现错误 8>R8 : error : Compilation can't be completed because some library classes are missing.

除此之外,这些设置如何将效果捆绑到本机程序集,AotAssemblies,LLVM等中?我们可以和他们一起使用吗?我的配置如下。但不幸的是,它不起作用。如果我删除D8和R8,它的工作原理。我尝试仅使用Proguard + D8,但也无法正常工作。

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <AndroidUseSharedRuntime>False</AndroidUseSharedRuntime>
    <DebugType>portable</DebugType>
    <AndroidLinkMode>Full</AndroidLinkMode>
    <EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
    <AndroidCreatePackagePerAbi>true</AndroidCreatePackagePerAbi>
    <JavaMaximumHeapSize>1G</JavaMaximumHeapSize>
    <AotAssemblies>true</AotAssemblies>
    <EnableLLVM>true</EnableLLVM>
    <AndroidAotAdditionalArguments>no-write-symbols,nodebug</AndroidAotAdditionalArguments>
    <DebugSymbols>false</DebugSymbols>
    <BundleAssemblies>true</BundleAssemblies>
    <AndroidEnableMultiDex>True</AndroidEnableMultiDex>
    <EnableProguard>false</EnableProguard>
    <Debugger>Xamarin</Debugger>
    <AndroidSupportedAbis>armeabi-v7a;x86;x86_64</AndroidSupportedAbis>
    <AndroidLinkSkip> </AndroidLinkSkip>
    <AndroidEnableMultipleDex>true</AndroidEnableMultipleDex>
    <AndroidExplicitCrunch>true</AndroidExplicitCrunch>
    <AndroidDexTool>d8</AndroidDexTool>
    <AndroidLinkTool>r8</AndroidLinkTool>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

更新:

我删除了r8并启用了proguard。因为一般阅读后(不仅是xamarin),r8还不如proguard成熟。所以我只让d8高于configuarion和EnableProguard = true。但是我收到关于r8的警告和错误

8>"\myApp.Droid\myApp.Droid.csproj" (Rebuild;BuiltProjectOutputGroup;BuiltProjectOutputGroupDependencies;DebugSymbolsProjectOutputGroup;DebugSymbolsProjectOutputGroupDependencies;DocumentationProjectOutputGroup;DocumentationProjectOutputGroupDependencies;SatelliteDllsProjectOutputGroup;SatelliteDllsProjectOutputGroupDependencies;SGenFilesOutputGroup;SGenFilesOutputGroupDependencies target) (1) ->
8>(_CompileToDalvikWithD8 target) -> 
8>  R8 : warning : Missing …
Run Code Online (Sandbox Code Playgroud)

xamarin.android xamarin xamarin.forms

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

首先是WPF和实体框架代码

我想用数据网格和保存按钮实现一个简单的WPF.当我单击保存按钮时,它将接受我尝试过的更改(行编辑,单元格编辑,新行,删除等)RowEditHandlerCollectionChange使用可观察集合的事件.但我无法获得解决方案.任何人都可以告诉我一个简单的方法.使用数据集(xsd),我能够通过将网格的datacontext发送到数据集并使用更新功能来实现这一目标.

感谢帮助

entity-framework wpfdatagrid ef-code-first entity-framework-4.1

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

使用Parallel.ForEach和/或async/await

我尝试验证我的图片网址,看看它们是否有效.我有这么多人,完成这项任务需要几个小时.因此,我决定异步进行.我想知道我的代码是否有任何重大差异或优势,如下所示.

我的主要职能是:

Async Function testUrl_async(ByVal myImageurl As String) As Task(Of Boolean)

   myHttpResponse = Await myHttpClient.GetAsync(myImageurl)
    If myHttpResponse.IsSuccessStatusCode Then
        mySuccess = True
    Else
        mySuccess = False
    End If

    Return mySuccess
End Function

 Function testUrl(ByVal myImageurl As String) As  Boolean

   myHttpResponse = myHttpClient.GetAsync(myImageurl)
    If myHttpResponse.IsSuccessStatusCode Then
        mySuccess = True
    Else
        mySuccess = False
    End If

    Return mySuccess
End Function
Run Code Online (Sandbox Code Playgroud)

1)使用异步等待.

For Each myImage In myImages
    Dim result=await testUrl_async(myImageUrl).Result 
    'some code                  
Next
Run Code Online (Sandbox Code Playgroud)

2)使用平行foreach

Parallel.ForEach(myImages, 
    Sub(myImage)
        testUrl(pictureComponent.websiteShop.hqpatronen, myImageUrl) 
        'some code
    End Sub)
Run Code Online (Sandbox Code Playgroud)

3)使用并行foreach和asnyc/await

Parallel.ForEach(myImages, …
Run Code Online (Sandbox Code Playgroud)

vb.net task-parallel-library async-await parallel.foreach

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

Elasticsearhc-如何在Sense或Head插件上执行多搜索请求

我试图在感觉和插件头上实现这个多搜索请求,但我无法得到什么问题?doc上的示例是curl,我无法理解究竟有什么区别.

POST _msearch?pretty=1 
{"myIndex":"Product"}
{
  "fields": [
      "id",
    "Name"
  ], 
"query": {
 "bool": {
      "should": [
        {
          "query_string": {
            "default_field": "_all",
            "query": "key"
          }
        }
      ] 
    }      

  }
,
  "from": 0,
  "size": 5,
  "sort": [],
  "aggs": {}
}
{"myIndex":"Printer"}{
  "fields": [
      "id",
    "Name"  
  ], 
"query": {
 "bool": { 
      "must": [{
      "has_child": {
     "type": "Printer",
     "query": {
        "match": {
        "Name": "key"
        }
      }
    }
      }]
    }      

  }
,
  "from": 0,
  "size": 5,
  "sort": [],
  "aggs": {}
}
Run Code Online (Sandbox Code Playgroud)

感觉上我得到了这个错误.{"error":"JsonParseException [意外的输入结束:OBJECT的预期关闭标记(来自[来源:[B …

elasticsearch

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

将嵌套多重搜索查询编写为对象初始值设定项语法

我有一个多重搜索查询,如下所示。基本上我查询产品和类别类型。我想让这个查询成为可选的,而无需再次编写相同的代码。基本上在某些情况下,我只想查询产品类型,这意味着它不会进行多重搜索,而是搜索查询。如何将此查询拆分为 2 个搜索查询。我想就像下面这样。

    return Client.MultiSearch(ms => ms
        .Search<Product>("products", s => s
        .Index(IndexName)
        .Explain(explain)
          .Query(q => q
             .Bool(b => b
                 .Should(
                     sh => sh.MultiMatch(qs => qs
                         .Fields(d => d                         
                             .Field(Name + ".raw", NameBoost + 0.5)
                             .Field(Name, NameBoost)                            
                            .Type(TextQueryType.BestFields)
                            .Query(key))
                            ))).From(startfrom).Size(size))
.Search<Category>("categories", s => s
.Index(IndexName)
.Explain(explain)
.Query(q => q.
Bool(b => b.
Should(sh => sh.
MultiMatch(m => m
.Fields(d => d
.Field(f => f.Name, NameBoost)
.Field(p => p.Name.Suffix("raw"), NameBoost + 0.5)).Type(TextQueryType.BestFields)
.Query(key)
)
))).From(startfrom).Size(size))
);
Run Code Online (Sandbox Code Playgroud)

像下面这样的东西。根据这篇文章,我猜它被称为对象初始值设定项语法

Client.MultiSearch(搜索产品查询&&搜索类别查询)

是否可以?

elasticsearch nest

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

使用“Task.WhenAll”时如何控制线程数

我正在通过异步发出 http get 请求来验证图像 url。使用下面的代码一切正常,但是当我有这么多图像时,我们的防火墙将阻止我的互联网访问,因为同时请求的线程太多。因此,我正在寻找如何限制并发运行线程数的解决方案。我结束了这个线程告诉我使用 SemaphoreSlim但不知何故我无法理解这个想法以及如何实现它?

  • 在添加任务时,SemaphoreSlim wait 或 waitAsnyc(有什么区别?)应该在 foreach 内?我可以像在代码中一样使用 linq 创建任务列表吗?
    • 为什么要使用task.Run?
    • 线程在哪一行执行之后开始?在 task.run 或 task.whenall 之后?

如果这不是最好的方法,请提出更好的方法。我不确定将 MaxDegreeOfParallelism 与 parallel.foreach 一起使用是否也有意义?

  Dim tasks = myImages.Select(Function(x) testUrl_async(x))
  Dim results = Await Task.WhenAll(tasks)

Async Function testUrl_async(ByVal myImage  As image) As Task(Of image)
   Dim myImageurl as string=myImage.imageurl
   myHttpResponse = Await myHttpClient.GetAsync(myImageurl)
    If myHttpResponse.IsSuccessStatusCode Then
        Return myImage
    Else
        Return Nothing
    End If
End Function
Run Code Online (Sandbox Code Playgroud)

vb.net multithreading semaphore async-await

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

如何在DataGridTextColumn上使用MultiBinding?

我有2个属性HeightWidth我的ImageDimension对象,我想将它们绑定在一起所以它显示像50x60(中间的斧头字符)?我怎样才能做到这一点?下面的代码给我一个错误说

"对象引用未设置为对象实例."

<cst:CustomDataGrid x:Name="grdImageDimension"  
                    ItemsSource="{Binding ImageDimensions, IsAsync=True}"  
   <DataGridTextColumn Header="ImageDimension" Width="50">
      <DataGridTextColumn.Binding>
         <MultiBinding StringFormat="{}{0} + {1}">
            <Binding Path="ImageDimensions.Height" />
            <Binding Path="ImageDimensions.Width" />                              
         </MultiBinding>
      </DataGridTextColumn.Binding>
   </DataGridTextColumn>
</cst:CustomDataGrid>
Run Code Online (Sandbox Code Playgroud)

视图模型:

Public Class ImageDimensionsVM

    Private m_ImageDimensions As ObservableCollection(Of ImageDimension)
    Public Property ImageDimensions() As ObservableCollection(Of ImageDimension)
        Get
            Return m_ImageDimensions
        End Get
        Set(value As ObservableCollection(Of ImageDimension))
            m_ImageDimensions = value
        End Set
    End Property
Run Code Online (Sandbox Code Playgroud)

c# data-binding wpf xaml

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

如何在xamarin.forms中的xaml中大写/小写resx绑定?

遵循xamarin本地化主题和样本TodoLocalized,我使我的应用程序多语言.我的问题有时候,我需要使用有时单词大写,我不想在resx文件中创建另一个翻译作为同一个单词的大写版本.实现这一目标的最佳方法是什么?如果可能延长这个translateextension?或者我应该使用IValueConvertor?如果是,如何在xaml中绑定它

    // You exclude the 'Extension' suffix when using in Xaml markup
        [ContentProperty("Text")]
        public class TranslateExtension : IMarkupExtension
        {
            readonly CultureInfo ci;
            const string ResourceId = "myApp.Resx.AppRes";

            public TranslateExtension()
            {
                if (Device.OS == TargetPlatform.iOS || Device.OS == TargetPlatform.Android)
                {
                    ci = DependencyService.Get<ILocalize>().GetCurrentCultureInfo();
                }
            }

            public string Text { get; set; }

            public object ProvideValue(IServiceProvider serviceProvider)
            {
                if (Text == null)
                    return "";

                ResourceManager resmgr = new ResourceManager(ResourceId
                                    , typeof(TranslateExtension).GetTypeInfo().Assembly);

                var translation = resmgr.GetString(Text, ci);

                if (translation …
Run Code Online (Sandbox Code Playgroud)

resx xamarin xamarin.forms

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

什么是 LoggerExtension Args 参数以及如何与应用程序见解集成?

我认为使用 args 参数我会在 Azure 应用程序洞察中的 customDimensions 下看到一个新的自定义维度,但它对我不起作用。我找不到有关如何使用此参数的任何好的信息。它的用途是什么?在 App Insights 中哪里可以找到该信息?

我只是传递了一个字符串数组,但在 AI 中找不到这个对象。

//
        // Summary:
        //     Formats and writes an error log message.
        //
        // Parameters:
        //   logger:
        //     The Microsoft.Extensions.Logging.ILogger to write to.
        //
        //   exception:
        //     The exception to log.
        //
        //   message:
        //     Format string of the log message in message template format. Example:
        //     "User {User} logged in from {Address}"
        //
        //   args:
        //     An object array that contains zero or more objects to format. …
Run Code Online (Sandbox Code Playgroud)

azure azure-application-insights asp.net-core azure-functions ilogger

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

如果更改,Azure UploadDirectoryAsync 不会覆盖现有文件

我正在使用 Microsoft.WindowsAzure.Storage.DataMovement 库进行目录上传,如下所示

     TransferManager.Configurations.ParallelOperations = 64;

         UploadDirectoryOptions options = new UploadDirectoryOptions()
                    {                              
                        ContentType = "image/jpeg",
                        Recursive = true,                   

                    };


    context.FileTransferred += FileTransferredCallback;
    context.FileFailed += FileFailedCallback;
    context.FileSkipped += FileSkippedCallback;


    await TransferManager.UploadDirectoryAsync(sourceDir, destDir, options:
 options, context: context, cancellationToken: cts.Token);
Run Code Online (Sandbox Code Playgroud)

我认识到,如果我更改了同名的图像,函数将忽略该图像并在文件存在时返回异常。如果 datemodified 更改,如何替换图像?首先,我本地电脑上的 datemodified 和 azure 应该同步。

c# azure-storage azure-blob-storage

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