小编Mil*_*ilo的帖子

函数中的参数类型验证 - 二进制模块与脚本模块

构建了许多PowerShell模块(包括二进制和脚本)之后,两个模型之间仍然存在一些不一致的问题,我无法理解这些模块.也许你们中的一个人可以对这个问题有所了解.

  1. 想象一个接受单个DateTime值的函数.在脚本函数中,我将其定义为[DateTime]参数; 在C#函数中,参数将是类型DateTime.到现在为止还挺好.

  2. 现在想象一下将DateTime函数传递给函数,其中添加了一个额外的note属性Add-Member.尽管被定义为a [DateTime],脚本函数参数很乐意接受这个值,因为它实际上是PSObject包装原始DateTime(并且可能包含其他成员)在使用时被解包 - 我希望我在这里使用正确的术语.正如预期的那样,传递除(包装)之外的其他东西DateTime会失败,从而使该功能或多或少类型安全.

  3. 等效的C#函数将参数定义为a DateTime,因此AFAIK无法访问其他参数.毕竟,参数提供的唯一"接口"来自DateTime类型.

  4. 或者,我可以定义的C#函数的参数类型的PSObject,但我会做我自己的类型检查了PSObjectBaseObject.

我的逻辑中有缺陷吗?或者,更重要的是,有没有办法绕过这个,所以我仍然可以将我的二进制模块的类型检查留给PowerShell?

提前谢谢了!

c# powershell type-conversion

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

在Android手机上模拟NDEF NFC标签 - >使用iPhone/iOS core-nfc进行阅读

我使用HostApduServiceAndroid(7)上的模拟NFC论坛类型4(NDEF)标记.

阅读NDEF文本消息可以从android中可靠地工作,但我遇到了以下问题:

  • 当我使用其他Android设备的NXP TagInfo扫描仿真手机时,Google Play会打开,因为它也在监听,但NDEF标签始终会成功扫描.
  • 在iPhone(7)上使用NXP TagInfo作为阅读器阅读标签是不同的:核心NFCAPI看起来非常有限,扫描必须由用户启动,并伴有"准备扫描"对话框.当我将iPhone保持在Android设备上时,有时对话框会关闭" NFC会话已过期" 消息(大约50%的尝试次数).当我锁定模拟Android手机时,该NDEF服务仍然运行,iPhone可以100%的成功率扫描标签.

我想我已经修复了第一个问题ForegroundDispatch(仅当屏幕上显示仿真应用程序时才需要标记仿真).但是,iPhone有时仍会取消扫描.我想这也可能是因为Android手机试图连接到iPhone的HCE/ApplePay /无论是什么.

所以我相信我的问题的原因是在NFC启用时对所有类型的标签进行Android扫描.

有没有办法禁用从应用程序主动扫描被动标签,同时仍然运行HostApduService模拟NFC标签?

(我会在收到核心NFC错误消息后立即更新此问题.)

android nfc ios

7
推荐指数
0
解决办法
891
查看次数

在watchOS中使用.listRowBackground时如何将cornerRadius添加到SwiftUI列表单元格?

我试图List通过每个单元格上的图像来获得手表上的正常值listRowBackground

但是,当我将图像设置为listRowBackground标准的角半径时List,就会消失(见下文)。

我尝试background在单元格View本身中设置修改,但这会导致同样的问题。查看可视化视图调试器,背景图像似乎远远超出了单元格本身。

struct ListView: View {
    @ObservedObject var model: ListModel

    var body: some View {
        List {
            ForEach(self.model.items) { item in
                NavigationLink(destination: PlayerView(item: item)) {
                    ListCell(item: item).frame(height: 100)
                }
                .listRowBackground(Image(uiImage: item.image)
                .resizable()
                .scaledToFill()
                .opacity(0.7)
                )
            }
        }
        .listStyle(CarouselListStyle())
        .navigationBarTitle(Text("Today"))

    }
}

@available(watchOSApplicationExtension 6.0, *)
struct ListCell: View {
    var item: ListItem

    var body: some View {
        VStack(alignment: .leading) {
            Text("\(self.item.length) MIN . \(self.item.category)")
                .font(.system(.caption, design: .default))
                .foregroundColor(.green) …
Run Code Online (Sandbox Code Playgroud)

watchkit swiftui

7
推荐指数
2
解决办法
4389
查看次数

标签助手“输入”在元素的属性声明区域中不得包含 C#

我们在构建最近从 .NET Core 2.2 迁移到 3.0 的 ASP.NET Core MVC 应用程序时遇到以下错误:

标签助手“input”(或“textarea”或任何其他)在元素的属性声明区域中不得包含 C#。

我们使用 Razor@functions返回 HTML 属性内容以解决该问题,但是当您使用变量从函数中返回它而没有任何额外逻辑(函数dummy(htmlAttributeContent)返回htmlAttributeContent)时,它看起来很难看

@{
    var roAttrHTML = "";
    if (!user.GotAccessToken("someToken")) {
        roAttrHTML = " readonly=\"readonly\" ";
    }
}
<textarea class="testClass" asp-for="testId" @readonlyAttribute>@Model.Id</textarea>
Run Code Online (Sandbox Code Playgroud)

实际上我们得到了错误

标签助手“textarea”在元素的属性声明区域中不得包含 C#。

当编译我们的 ASP.NET Core MVC 应用程序时,我们需要获取方法(不@functions使用更好),这将为我们提供一种克服该问题的方法(因为我们有很多具有类似逻辑的页面,我们需要触摸一次并避免任何可能的在未来的 .NET Core 版本中支持属性的可能新变化的问题)

model-view-controller razor asp.net-core-3.0

7
推荐指数
5
解决办法
3109
查看次数

写操作在lambda update-function-code中超时

我一直在尝试使用AWS CLI部署lambda函数。以下是我正在使用的命令,压缩文件约为5MB。

aws lambda update-function-code --function-name <function arn> --zip-file fileb://Lambda-Deployment.zip
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

(“连接已中止。”,超时(“写入操作超时”,))

然后,我添加--cli-connect-timeout 10000到上面的命令并再次尝试,这一次它似乎已经起作用了,我得到的输出就好像它起作用了一样。我检查了Lambda控制台中的功能列表,它显示它最近一次被修改,并且代码大小为5.1MB。

现在,很奇怪的部分是,当我在Lambda控制台中单击函数时,所有代码都在“功能代码”部分中消失了。那里什么都没有。我只是空白部分。上传zip文件后,我已经等待了将近一个小时,但没有任何显示。

我也尝试zip在Lambda控制台中手动上传文件,但遇到相同的问题。代码消失。

我还有其他Lambda函数,这些函数具有较小的zip文件(约1.5MB),并且在上载时都可以正常工作。

任何帮助将不胜感激。

amazon-web-services aws-lambda

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

统一的 Firebase 远程配置仅获取默认值而不是真实值

我正在尝试将 Firebase 远程配置实施到统一项目中。

这是唯一正在运行的脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Firebase;
using Firebase.RemoteConfig;
using System;
using System.Threading.Tasks;

public class FirebaseAlt : MonoBehaviour
{
    private  DependencyStatus dependencyStatus = DependencyStatus.UnavailableOther;

    void Awake()
    {
        FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
            dependencyStatus = task.Result;
            if (dependencyStatus == DependencyStatus.Available)
            {
                 InitializeFirebase();
            }
            else
            {
                 Debug.LogError("Could not resolve all Firebase dependencies: " + dependencyStatus);
            }
         });
     }

     // Initialize remote config, and set the default values.
     void InitializeFirebase()
     {
          FetchData();
     }

     // Start a fetch request.
     public void …
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine firebase unity5 firebase-remote-config

6
推荐指数
0
解决办法
3270
查看次数

Angular绕过SecurityTrustResourceUrl说任何参数都未定义

我正在尝试使用 来清理 URL bypassSecurityTrustResourceUrl。然而,无论我在论点中赋予什么价值,我总是得到

无法读取bypassSecurityTrustResourceUrl未定义的属性

return this.sanitizer.bypassSecurityTrustResourceUrl('http://www.google.com');
Run Code Online (Sandbox Code Playgroud)

返回:

错误类型错误:无法读取bypassSecurityTrustResourceUrl未定义的属性UrlSanitizerService.push../src/app/services/urlsanitizer.service.ts.UrlSanitizerService.sanitizeURL

我看过的所有地方都说这应该清理 URL 并允许它通过 iframe 显示。我可能误解了争论的内容。任何帮助将不胜感激,谢谢!

typescript angular angular-dom-sanitizer

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

Powershell x86:无法加载文件或程序集 Microsoft.SqlServer.BatchParser

当我尝试invoke-sql从 Powershell X86执行命令时出现错误

invoke-sqlcmd -Query "SELECT 'HELLO!'" -ServerInstance Server -Database DB
Run Code Online (Sandbox Code Playgroud)

invoke-sqlcmd :无法加载文件或程序集“Microsoft.SqlServer.BatchParser,版本=15.100.0.0,文化=中性,PublicKeyToken=89845dcd8080cc91”或其依赖项之一。该系统找不到指定的文件。

如果我从常规 x64 Powershell 提示符运行完全相同的命令,我不会收到错误

invoke-sqlcmd -Query "SELECT 'HELLO!'" -ServerInstance Server -Database DB
Run Code Online (Sandbox Code Playgroud)
Column1
-------
HELLO!
Run Code Online (Sandbox Code Playgroud)

这是在新建的 Windows 2016 x64 位服务器上:

操作系统名称 Microsoft Windows Server 2016 数据中心版本 10.0.14393 内部版本 14393

我需要 x86 powershell 来运行使用旧版 32 位 ODBC 驱动程序的脚本,它还使用invoke-sql命令。

sql-server powershell x86 windows-server-2016

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

带有表单控件的 ng-select 需要验证 angular 7

我正在使用ng-select下拉搜索,但如果没有从下拉列表中选择任何内容,我将无法获得验证。我像下面这样返回:

<div class="form-group">
   <ng-select [items]="productData" [searchable]="true" bindLabel="productName"
   [formControl]="prodCode"
   [ngClass]="{ 'is-invalid': submitted && f.prodCode.errors }"
   placeholder="Select Product" required>  
   </ng-select>
   <div *ngIf="submitted && f.prodCode.errors" class="invalid-feedback">
      <div *ngIf="f.prodCode.errors.required">Product Code is required</div>
   </div>
</div>
Run Code Online (Sandbox Code Playgroud)

在 Ts 文件中

this.productForm = this.fb.group({
    prodCode: new FormControl(null, Validators.required)
});
get f() {
    return this.productForm.controls;
}
this.submitted = true;
if (this.productForm.invalid) {
    return;
}
Run Code Online (Sandbox Code Playgroud)

所以恳请您让我知道我的错误在哪里......

angular-ngselect bootstrap-4 angular

6
推荐指数
2
解决办法
9326
查看次数

如何从 ASP.net core 1.1.2 Httpclient 启用 TLS 1.2

我们正在使用 ASP.net 核心 1.1.2,我们正在调用启用了 TLS1.2 的 HTTPS 服务。当我们从 Httpclient 调用时,我们收到以下安全错误。

System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: A security error occurred 
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
   at System.Net.Http.WinHttpHandler.<StartRequest>d__105.MoveNext()
Run Code Online (Sandbox Code Playgroud)

有没有办法使用 ASP 核心 1.x 使用 httpclient 启用 TLS1.2

来自邮递员的相同 https 调用工作正常

注意:我们尝试了多种可能性,如下所示,但都没有奏效。

  1. handler.ClientCertificateOptions = ClientCertificateOption.Automatic;
    handler.SslProtocols = SslProtocols.Tls11 |  SslProtocols.Tls12 | SslProtocols.Tls;
    handler.PreAuthenticate = true;
    handler.ServerCertificateCustomValidationCallback += (message, cert, chain, errors) => { return true; };
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我们尝试向注册表项添加选项,这也失败了

新服务器添加了新密码,并且客户端必须支持以下 TLS 1.2 密码套件之一:

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
Run Code Online (Sandbox Code Playgroud)

c# ssl tls1.2 asp.net-core

5
推荐指数
0
解决办法
766
查看次数