我正在使用FsUnit 2.1(使用NUnit 3.2)为F#项目编写测试.这是一个简单的模块:
namespace Library1
module LibraryFunctions =
let Execute f1 = f1()
let Id x = x
Run Code Online (Sandbox Code Playgroud)
这是我的测试:
namespace Tests
open FsUnit
open NUnit.Framework
open Library1
[<TestFixture>]
type Tests() =
[<Test>]
// Passes
member x.``LibraryFunctions.Id should return the value``() =
LibraryFunctions.Id 42 |> should equal 42
[<Test>]
// Fails
member x.``LibraryFunctions.Execute should return the result of the function``() =
let f() = 42
LibraryFunctions.Execute f |> should equal 42
Run Code Online (Sandbox Code Playgroud)
第二次测试失败(在NCrunch和ReSharper中),并显示以下消息:
System.MissingMethodException : Method not found: '!!0 Library1.LibraryFunctions.Execute(Microsoft.FSharp.Core.FSharpFunc`2<Microsoft.FSharp.Core.Unit,!!0>)'.
如果我将测试模块放在与测试相同的代码文件中(而不是在单独的VS项目中),则测试通过.我怀疑这是由于NUnit和F#/ C#interop的一些问题.如果是这样,怎么解决?
尝试使用FSharp.Data.Json库解析一个简单的json字符串,并面临以下错误.我正在使用F#2.0互动.关于如何解决错误的任何想法
JsonValue.Parse(@"{""id"":""117sds""}");;
System.MissingMethodException:找不到方法:'!! 0 Microsoft.FSharp.Collections.SeqModule.ExactlyOne(System.Collections.Generic.IEnumerable 1 culture) at FSharp.Data.Json.JsonValue.Parse(String text,FSharpOption`1 culture )在C:\ Tomas\Projects\FSharp.Data\src\Library\Json.fs:第215行 at.$ FSI_0063.main @()1<!!0>)'.
at FSharp.Data.Json.JsonParser..ctor(String jsonText, FSharpOption
这是一个 Xamarin 解决方案,我在此消息的标题中发现了错误。当然,我可以轻松确认PCL项目中HttpClientHandler上有Proxy属性。并且解决方案构建没有错误。只有当我运行时它才会产生这个错误(在 Droid 或 iOS 上),并且在它调用 PCL 中实例化 HttpClient 的方法时会产生这个错误。请注意,它甚至没有达到该方法。错误出现在应用程序启动方法上;例如,UIApplication.Main()
如果我注释掉处理程序并在没有处理程序的情况下实例化 HttpClient,只要我在开放的互联网上,它就可以正常工作。但我试图让它从代理后面工作。
进一步调查表明,设备项目没有对 System.Net.Http 的引用。所以我添加了这些——它表明 Xamarin.iOS 和 Xamarin.Android 作为包——但它仍然产生错误。
我不清楚错误告诉我什么,但我相信这意味着设备项目看不到 System.Net.Http.HttpClientHandler?
private HttpClient GetHttpClient()
{
WebProxy proxy = new WebProxy(ProxyConfig.Url)
{
Credentials = new NetworkCredential(ProxyConfig.Username, ProxyConfig.Password)
};
// At runtime, when GetHttpClient is invoked, it says it cannot find the Proxy setter
HttpClientHandler handler = new HttpClientHandler
{
Proxy = proxy,
UseProxy = true,
PreAuthenticate = true,
UseDefaultCredentials = false,
};
HttpClient client = new HttpClient(handler);
// This works …Run Code Online (Sandbox Code Playgroud) 我正在创建一个ASP.NET MVC 3应用程序,试图利用此处所述的控制器动作注入.
控制器构造函数注入工作没有任何问题,但我似乎无法让动作注入工作.
我在Global.asax中设置了Autofac,如下所示:
var builder = new ContainerBuilder();
builder.Register<ITestInject>(c => new TestInject { TestString = "hi" });
builder.RegisterType<ExtensibleActionInvoker>().As<IActionInvoker>();
builder.RegisterControllers(typeof(MvcApplication).Assembly).InjectActionInvoker();
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
Run Code Online (Sandbox Code Playgroud)
我的控制器有这样的动作:
public ActionResult Test(ITestInject testInject)
{
return View(testInject);
}
Run Code Online (Sandbox Code Playgroud)
TestInject/ITestInject类/接口定义为:
public interface ITestInject
{
string TestString { get; }
}
public class TestInject : ITestInject
{
public string TestString { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
当我尝试导航到Test操作时,我看到了这个错误:
'/'应用程序中的服务器错误.
无法创建接口的实例.
描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.MissingMethodException:无法创建接口的实例.
来源错误:
在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.
堆栈跟踪:
[MissingMethodException: Cannot create an instance of an interface.] System.RuntimeTypeHandle.CreateInstance(RuntimeType …
我有一个绑定到用户类列表的数据网格视图.
当我创建一个新行时,我得到一个缺少的方法异常"找不到User.cs上的构造函数".问题是我已经有一个默认的构造函数所以我想知道是否有办法找出参数是什么,以便我可以实现类构造函数.
这是类和构造函数
public string Username { get; set; }
public byte[] HashedPassword;
public byte[] Salt ;
public string sSalt { get { return Encoding.ASCII.GetString(Salt); } set; }
public string sPass { get { return Encoding.ASCII.GetString(HashedPassword); } set; }
public bool Admin { get; set; }
public List<AnswerClass> answers { get; set; }
public Tuple<int, int> sessionScore;
public User(string UsernameArg = "", byte[] PasswordArg = null, byte[] SaltArg = null, bool AdminArg = false)
{
sessionScore = new Tuple<int, int>(0, …Run Code Online (Sandbox Code Playgroud) 目前我有一个运行时异常:'Systen.MissingMethodException:没有为此对象定义无参数构造函数.
我用Google搜索并遇到很多人实际上没有默认的contstructor,虽然我的代码确实如此,所以我不知道它出错了!
我的完整代码可以在pastebin上找到,因为它很大:http://pastebin.com/RxdKgxSx
谢谢你的帮助!
asp.net-mvc missingmethodexception method-missing asp.net-mvc-4
当在一台机器上启动我的应用程序时,它立即退出并说它“已停止工作”。在事件日志中,我看到MissingMethodException是原因。没有显示异常对话框,并且在事件日志详细信息中,我看不到任何详细的错误消息(例如,包含“找不到方法:xyz”)。
事件处理程序信息说(试图将其翻译回英语,可能不是逐字记录)
应用程序:Myapp.exe Framework版本v4.0.30319
说明:由于未处理的异常,进程已终止
异常信息:System.MissingMethodException
堆栈:位于MyApp.MainClass.Main(System.String [])
引发此异常时,如何找到缺少的方法?它是一个托管应用程序,但具有许多本机依赖性。
编辑:编译的程序集都在同一版本中编译,即在应用程序的托管代码内没有版本不匹配。二进制依赖项中可能存在不匹配,但是如果这样,我如何找出哪一个呢?
它是VS 2012中内置但针对4.0的Windows Forms应用程序。在只有Framework 4.0的所有计算机上都不会引发该错误,因此这似乎不是问题。
我试图从我的控制台应用程序调用一个DLL类.我试图从dll调用的所有类都有参数化构造函数.我希望传递用户并将两个参数传递给我试图调用的任何类.我知道我如何调用这些方法有问题,但我无法弄清楚是什么.
有人可以请更正我的代码吗?
行中出现错误 - "object instance = Activator.CreateInstance(type)"
控制台应用 -
class Program
{
static void Main(string[] args)
{
string test_method = args[2];
string user = args[0];
string pass = args[1];
Assembly myassembly = Assembly.LoadFrom("Tests.dll");
Type type = myassembly.GetType("Tests." + test_method);
object instance = Activator.CreateInstance(type);
MethodInfo[] methods = type.GetMethods();
methods[0].Invoke(instance, new object[] {user, pass });
Console.WriteLine("\n"+test_method + " has passed.");
}
}
Run Code Online (Sandbox Code Playgroud)
正在调用的示例类 -
public class Test_3456 : ePO
{
public Test_3456(string a, string b) : base (a, b)
{
MultipleWebclipsSameNameDifferentUrl_3456(); …Run Code Online (Sandbox Code Playgroud) 这个问题令我感到困惑,它影响了单个用户(据我所知)并且没有被我们复制......
用户正在接收MissingMethodException,我们的跟踪文件表明它是在我们创建组件的新实例之后发生的,当我们调用Initialize/Setup方法准备让它工作时(示例中的InitializeWorkerByArgument)
由错误指定的方法是一个接口方法,基类实现,从基类派生的类可以根据需要覆盖
用户拥有我们应用程序的最新版本
所有提供的代码都在一个程序集中提供
这是组件的非常精炼版本:
class Widget : UserControl
{
public void DoSomething(string argument)
{
InitializeWorkerByArgument(argument);
this.Worker.DoWork();
}
private void InitializeWorkerByArgument(string argument)
{
switch (argument)
{
case "SomeArgument":
this.Worker = new SomeWidgetWorker();
break;
}
// The issue I'm tracking down would have occured during "new SomeWidgetWorker()"
// and would have resulted in a missing method exception stating that
// method "DoWork" could not be found.
this.Worker.DoWorkComplete += new EventHandler(Worker_DoWorkComplete);
}
private IWidgetWorker Worker
{
get;
set;
}
void Worker_DoWorkComplete(object …Run Code Online (Sandbox Code Playgroud)