【发布时间】:2019-02-25 17:26:54
【问题描述】:
假设我有一些 dll,其方法如下:
public (string, List<string>) MyMethod(NameValueCollection Settings, MyClass1 params)
{
//do something
return (result, errorList);
}
现在从我的主要项目中,我会这样称呼它:
var shipmentNumber = string.Empty;
var errorList = new List<string>;
var DLL = Assembly.LoadFile($@"{AppDomain.CurrentDomain.BaseDirectory}{appSettings[$"{parameters.TestCase}_DLL_Name"]}");
Type classType;
classType = DLL.GetType($"{appSettings[$"{parameters.TestCase}_DLL_Name"].Replace(".dll", "")}.MyService");
dynamic d = Activator.CreateInstance(classType);
(result, errorList)= d.MyMethod(appSettings, params);
但是,这给了我在此处显示的最后一行 Cannot deconstruct dynamic objects 的错误。有没有办法可以在这里正确返回元组?
【问题讨论】:
-
顺便说一句,这个问题可以通过minimal reproducible example 得到改善。该问题可以在单个程序集中轻松重现(反射部分无关紧要) - 一个小型控制台应用程序将展示相同的行为,此时读者更容易进行调整。 (只是为您的下一个问题考虑的事情。)
-
我下次会,我认为我应该保持最低限度。