Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 异常情况下如何发送函数参数_C#_Android - Fatal编程技术网

C# 异常情况下如何发送函数参数

C# 异常情况下如何发送函数参数,c#,android,C#,Android,我意识到我正在开发的应用程序会产生很多错误。几乎每次发生错误时,都会捕获并记录错误,但遗憾的是,没有一个会记录发送的值(这对调试很有用) 是否有一个简单的解决方案,我可以添加到通过日志发送的所有参数 这是我所拥有的一个例子 public static async Task<InventoryItem> GetTaskInventory(string labeladresse) { InventoryItem result = null;

我意识到我正在开发的应用程序会产生很多错误。几乎每次发生错误时,都会捕获并记录错误,但遗憾的是,没有一个会记录发送的值(这对调试很有用)

是否有一个简单的解决方案,我可以添加到通过日志发送的所有参数

这是我所拥有的一个例子

public static async Task<InventoryItem> GetTaskInventory(string labeladresse)
        {
            InventoryItem result = null;
            await Task.Run(() =>
            {
                try
                {
                    IDeliveryService client = Common.GetDeliveryService();
                    result = client.GetLineTaskInventory(labeladresse);
                }
                catch (Exception ex)
                {
                    ex.Data.Add("parameters", $"labeladresse = {labeladresse}");
                    LogError(ex);
                }
                finally
                {
                }
            }).ConfigureAwait(false); ;

            return result;
        }
公共静态异步任务GetTaskInventory(字符串标签)
{
InventoryItem结果=null;
等待任务。运行(()=>
{
尝试
{
IDeliveryService client=Common.GetDeliveryService();
结果=client.GetLineTaskInventory(LabelAddresse);
}
捕获(例外情况除外)
{
Add(“参数“,$”LabelAddresse={LabelAddresse}”);
对数误差(ex);
}
最后
{
}
}).配置等待(错误);
返回结果;
}
但是我想把ex.Data.Add部分改成更通用的部分,因为我可能会经常使用它,我希望能够使用一行,我可以在需要的地方进行更多的复制粘贴

想象一下:ex.Data.Add(function.parameters[])


谢谢你,祝你度过愉快的一天

据我所知,没有简单的方法可以做到这一点。您可以通过获取相关的
StackFrame
来获取当前使用的方法,但这不允许您访问任何变量的当前值。此外,这种信息无论如何在发布配置中都是不可访问的,这意味着在任何非本地环境中基本上都不可能访问。我知道这看起来很麻烦,但仔细记录会大大提高调试水平,所以只记录每个实例的imoWelp是值得的,如果是这样的话,我还有70行额外的无聊代码要编写。谢谢@GlubusTbh,我自己从来没有真正做过这件事,所以如果你真的需要它,我会更仔细地研究它。但是,如果只是几行代码,我只会咬紧牙关一次,然后在新代码中维护它。或者创建一个帮助器方法,例如LogErrorWithMethodParameters(…),您可以使用反射来获取函数参数名称。在我脑海中,我不知道你如何得到这些值。这似乎不是解决任何问题的正确方法。