小编Key*_*iya的帖子

错误的 IL 格式 - 奇怪的 .NET 错误

我通过 Azure 中的 .NET 应用程序随机收到此错误消息。

关于该错误的可用信息似乎非常有限,我想知道是否有人知道可能是什么原因造成的?

它似乎是在调用某个存储过程时发生的,但它真的很难重新创建并且随机发生。

System.BadImageFormatException: Bad IL format.
 at System.Data.SqlClient.SqlConnection.ValidateAndReconnect(Action beforeDisconnect, Int32 timeout)
 at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds)
 at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite, String method)
 at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite, String methodName)
 at System.Data.SqlClient.SqlCommand.BeginExecuteNonQuery(AsyncCallback callback, Object stateObject)
 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions)
 at System.Data.SqlClient.SqlCommand.ExecuteNonQueryAsync(CancellationToken cancellationToken)
Run Code Online (Sandbox Code Playgroud)

c# sql-server asp.net azure azure-web-app-service

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

DataGridViewCheckBox 行返回 null,直到单击复选框

我创建了一个带有 DataGridView 的 Windows 窗体,并添加了一列,其中每行包含一个复选框。将 DataTable 绑定到 DataGridView,然后添加 DataGridViewCheckBoxColumn。

当我的表单关闭时,我尝试获取每行中复选框的值,但如果用户在任何时候都没有选中一行中的复选框,那么当我认为应该返回 false 时,程序只会将其值返回为 null (未检查)。这是为什么?我可以做什么来解决它?

//add checkbox column
DataGridViewCheckBoxColumn mCheckboxColumn = new DataGridViewCheckBoxColumn();
mCheckboxColumn.Name = "chk";
mCheckboxColumn.HeaderText = "checkbox";       
dgv.Columns.Add(mCheckboxColumn);



//looping through each row
foreach (DataGridViewRow row in dgv.Rows)
{
     if ((bool)row.Cells["chk"].Value == true)
     {
          MessageBox.Show("checked!");
     }
}
Run Code Online (Sandbox Code Playgroud)

c# datagridview datagridviewcheckboxcell datagridviewcolumn winforms

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

C# 在运行时将 Enumerable.Iterator 转换为已知的 List<Object>

我有一个只能在运行时检索对象类型的方法。我尝试将其转换为已知对象列表,但失败了。

  private string outputParamForListOrDict(IMethodReturn returnValue)
    {
        StringBuilder sb = new StringBuilder();
        String outputString = string.Empty;

        switch (returnValue.ReturnValue.GetType().GetGenericArguments()[0].Name)
        {       

            case nameof(ViewDocumentReport):

                List<ViewDocumentReport> _viewDocumentParam = (List<ViewDocumentReport>)returnValue.ReturnValue;

                //process the data here........

                return sb.ToString();

            //Other object cases

         }
    }
Run Code Online (Sandbox Code Playgroud)

我在下面遇到了一个例外:

"Unable to cast object of type >'<TakeIterator>d__25`1[ezAcquire.RMS.Model.ViewModels.ViewDocumentReport]' to type 'System.Collections.Generic.List`1[ezAcquire.RMS.Model.ViewModels.ViewDocumentReport]'."}
Run Code Online (Sandbox Code Playgroud)

我在调试模式下设置了断点。我的 returnValue.ReturnValue 是System.Linq.Enumrable.<TakeIterator>

如果我展开,我可以看到一个列表列表。

列表<ViewDocumentREport>

有人可以向我解释 d_25 是什么意思,并建议我如何在运行时正确地转换它?

谢谢

c# casting list enumerable custom-object

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

财产私有集崩溃统一

我有一个从网络获取一些数据的自定义类。
当我获得这些数据时,我想将它设置为一个属性的值,但是当我这样做时,统一崩溃了。注释行会在没有此行的情况下生成崩溃,一切正常。请参阅下面的代码:

using System;
using System.Collections;
using UnityEngine;
using UnityEngine.Networking;

public class GetDB
{
    private readonly Main m;
    private readonly string Url;

    public string DBData { 
        get
        {
            if(DBData == null)
                return null;
            else
                return DBData;
        } 
        private set
        {
            DBData = value;
        } 
    }

    public GetDB(Main m, string url)
    {
        this.m = m;
        this.Url = url;
    }

    public void GetServerData(){
        m.StartCoroutine(GetText(Url, (result) =>{
            this.DBData = result; //THIS LINE CRASHES UNITY
            Debug.Log(result);
        }));
    }

    IEnumerator GetText(string url, Action<string> result) { …
Run Code Online (Sandbox Code Playgroud)

c# properties coroutine unity-game-engine

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

读取共享库中的文件 Xamarin C#

我在共享库中保存了一些 .json 文件。

我已经成功地通过代码在 iOS 中很好地阅读了

string fileName = $"Files/file_name.json";

var path = Path.Combine(NSBundle.MainBundle.BundlePath, fileName);
using (var stream = new FileStream(path, FileMode.Open, FileAccess.Read))
using (var streaReader = new StreamReader(stream))
{
    return streaReader.ReadToEnd();
}
Run Code Online (Sandbox Code Playgroud)

然而,我一直在努力为 Android 做同样的事情。我无法读取资产,因为它位于共享库中。

using (var stream = Application.Context.Assets.Open("Files/file_name.json))
Run Code Online (Sandbox Code Playgroud)

如果我在 Android 项目的 asset 文件夹下有该文件,那么使用上面的 live 确实可以工作。

我想保留一份用于两个平台的文件副本。

c# xamarin

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

测试c#中for循环的最后一次迭代

   public string GetUpgradesPurchasedVal()
   {
        string upgradesPurchasedVals = "";
        for (int i = 0; i < upgradesPurchased.Count; i++) {
            if (i == upgradesPurchased.Count) {
                upgradesPurchasedVals += upgradesPurchased [upgradeNames[i]].ToString () + "$";
            } else {
                upgradesPurchasedVals += upgradesPurchased [upgradeNames[i]].ToString () + "|";
            }
        }
        return upgradesPurchasedVals;
    }
Run Code Online (Sandbox Code Playgroud)

所以在这里我循环遍历Dictionary<string,bool> upgradesPurchased并且我试图确保for循环是否在行标记的最后一次迭代,if(i == upgradesPurchased.Count)在这种情况下我期望发生的是if i等于字典中的项目数然后字符串将收到"$"而不是"|" 但是看起来这条线完全被忽略了

简介:我需要测试for循环是否在最后一次迭代中,如果是,那么"$"应该添加到字符串中,如果不是"|" 应该添加到字符串中

c#

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

c# - 将包含十六进制值的字符串写为字节

假设我有一个字符串

string hex = "55 6E 6B 6E 6F 77 6E 20 53 70 61 63 65"
Run Code Online (Sandbox Code Playgroud)

我想将这些写入文件,但它们应该是字节本身.所以结果将是未知空间.

有没有办法直接这样做,而不是先将encodingutf-8写入文件?我要问的原因是,如果我首先将字符串拆分为每个值的字符,有时候utf-8(例如0xE28780)中的特殊字符不会很好.

非常感谢!

c# utf-8 filestream

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