小编Ada*_*one的帖子

如何查找调用方法C#的完整名称

如何在c#中找到调用方法的全名.我见过解决方案:

我如何在C#中获取调用方法

如何找到调用当前方法的方法?

从Called函数获取调用函数名称

但他们只给我顶级水平.考虑这个例子:

namespace Sandbox
{
    class Program
    {
        static void Main(string[] args)
        {
            test();
        }

        static void test()
        {
            var stackTrace = new StackTrace();
            var methodBase = stackTrace.GetFrame(1).GetMethod();
            Console.WriteLine(methodBase.Name);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这只是输出'Main'如何让它打印'Sandbox.Program.Main'?

在任何人开始询问我为什么需要使用它之前,它是一个我正在处理的简单日志框架.

编辑

添加到Matzi的答案:

这是解决方案:

namespace Sandbox
{
    class Program
    {
        static void Main(string[] args)
        {
            test();
        }

        static void test()
        {
            var stackTrace = new StackTrace();
            var methodBase = stackTrace.GetFrame(1).GetMethod();
            var Class = methodBase.ReflectedType;
            var Namespace = Class.Namespace;         //Added finding the namespace
            Console.WriteLine(Namespace + …
Run Code Online (Sandbox Code Playgroud)

.net c# reflection

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

非托管代码中的ASP Net Core 1.1和EF 6异常?

好吧,这是一个非常怪异的问题,刚刚开发出来,对于我的生活,我不知道从哪里开始.

出于某种原因,我在EF 6中遇到了致命的错误,但这种情况只发生在我转换为.NET Core 1.1之后.这个应用程序在ASP.Net MVC 4上运行没有问题.

我不眠之夜的原因

对于搜索引擎:

托管调试助手'FatalExecutionEngineError': '运行时遇到了致命错误.错误的地址是0x77c81a09,位于线程0x2520.错误代码是0xc0000005.此错误可能是CLR中的错误,也可能是用户代码的不安全或不可验证部分中的错误.此错误的常见来源包括COM-interop或PInvoke的用户封送错误,这可能会破坏堆栈.```

从我在网上找到的,这是.NET的托管环境之外的问题....这意味着我只是羞于无知.

第一次遇到这个错误时,一个简单的Clean和Build将它固定了一会儿,然后又在同一个地方再次出现.

到目前为止,我在两个地方看到过这个错误:

var vm = new ManagerLogIndexViewModel()
{
    Locations = await _db.Locations.ToListAsync(),
};
Run Code Online (Sandbox Code Playgroud)

而且(虽然更复杂):

var results = await _db.InvolvedPersons
    .Where(
        x =>
            x.LastName.ToUpper().Contains(q) || x.FirstName.ToUpper().Contains(q) ||
            (x.FirstName + " " + x.LastName).ToUpper().Contains(q))
    .Select(x => new {x.FirstName, x.LastName, x.Id})
    .GroupBy(x => x.LastName + " " + x.LastName)
    .Select(x => x.FirstOrDefault())
    .ToDictionaryAsync(x => x.FirstName + " " + x.LastName, x => x.Id.ToString());
Run Code Online (Sandbox Code Playgroud)

它可能与某些事情有关async吗?

还有其他实体框架调用,一切正常,即使使用异步操作符也是如此.

即使是第一个例子也是在Clean和Build之后工作的.

我真的不知所措.我读过它可能与环境有关.目前,我没有其他可供测试的环境,只有我的开发机器.如果我在另一台机器上运行这个,我会尝试稍后更新.


我在发布之前做了另一个测试: …

.net c# entity-framework asp.net-core-mvc asp.net-core

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

控制台在类库c#中不可用

这个问题在这里似乎违背了什么,我都经历过.我无法从新的类库中访问控制台.我using System;在顶部.我在Windows 8上使用visual studio 11.我怀疑这在更新中已经丢失了,所以这意味着我做错了什么.

此外,一旦这个工作,控制台是否可用于便携式类库?

编辑

这里只是我制作的测试文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AdamLib.util.ConsoleSupport
{
    class SafeRead
    {
        private void test()
        {
            System.Console.Writeline("test"); //Console is not found in system
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是在类库中.

解决

就像我想的那样,这是我的错.

感谢@DarinDimitrov,他指出,使用VS 11和metro,已删除控制台支持以用于metro.因此,为了解决这个问题,我需要使用第二种类库创建一个新项目.有两家上市和我用一个包括地铁的说明.为了解决这个问题,我不得不在描述中使用没有 metro 的其他类型.

再次感谢所有帮助.

c# console class-library

12
推荐指数
2
解决办法
3万
查看次数

跨平台字符串加密

我正在寻找一种加密iPhone上的字符串的方法,将其传递给Web服务器(asp.net c#)并在那里解密以进行处理,并返回响应.

我想我知道如何发送加密的字符串然后返回结果,但我不知道什么加密将在iPhone和asp.net上工作.

有什么建议?示例代码会有所帮助,特别是在iPhone方面,如果可能的话.

asp.net encryption objective-c

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

.NET可移植类库[Serializable]属性

我有一个公共类库,包含我的服务器和客户端的许多模型.由于客户端在Xamarin下运行,因此公共库必须是可移植类库(PCL).

在我的服务器中,这些对象是通过AppDomain Remoting/Marshaling传递的,所以根据我的理解,一个对象需要被标记为[Serializable]或继承自MarshalByRefObject

在PCL中,我不能对我的任何模型做任何这些事情.

我的问题是:如何使这些对象与AppDomain Remoting/Marshaling一起使用并让它们驻留在可移植类库中?

c# serialization appdomain portable-class-library

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

NSTimer没有开火

对于我的生活,我无法弄清楚为什么这个NSTimer不会开火.这里是所有相关的代码(至少对我而言)

- (IBAction)connectClick:(id)sender
{
    if (connected)
    {
        NSLog(@"Disconnecting");
        [timer invalidate];
        timer = nil;
        connected = NO;
        [Connect setStringValue:@"Connect"];
        NSLog(@"Finished\n");
    }
    else
    {
        NSLog(@"Connecting");
        timer = [NSTimer timerWithTimeInterval:2.0 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];
        //[timer fire]; tested this line. same results
        [Connect setStringValue:@"a"]; 
        connected = YES;
        NSLog(@"Finished\n");
    }
}

- (void)timerFireMethod:(NSTimer*)theTimer
{
    NSLog(@"Fireing event");
    //[self resetRequest];
    //[spinner startAnimation:nil];
    //[request startAsynchronous];
}
Run Code Online (Sandbox Code Playgroud)

我已经阅读了苹果文档和其他问题,但我无法弄清楚.它甚至没有打过timerDireMethod:一次电话.我听说这可能是由不同的线程引起的,但据我所知,我没有使用多个线程.

欢迎所有想法.

macos objective-c nstimer

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

NuGet软件包目录的MSBuild宏

我正在研究一个NuGet软件包,该软件包通过使用.targets文件为构建过程添加了一个步骤。

我需要从我的NuGet包中引用其他文件,以成功完成构建。

过去,我已经习惯了,$(SolutionDir)packages\MyPackage并且一切都很好。

但是,我只是在玩VS 2017 RC,我注意到我的软件包安装在全局NuGet软件包目录中,而不是在solution文件夹中。

我可以从MSBuild中使用一些宏,其中包含NuGet packages文件夹的路径吗?我必须保持与VS2012的兼容性。

msbuild visual-studio nuget

5
推荐指数
2
解决办法
1799
查看次数

Excel 无法加载基本自定义函数加载项

一、环境:

\n\n

Excel 版本 1905(内部版本 11629.20246 即点即用)\n已连接到 Office 365 专业增强版

\n\n

Windows 10 企业版 10.0.16299 内部版本 16299

\n\n

我一直在尝试在 Excel 中使用自定义函数 API,但它始终无法加载我的清单。我正在使用 Visual Studio 进行开发,及其处理侧面加载。

\n\n

加载项似乎已部分加载,因为任务窗格确实打开并加载,但我的自定义功能均未注册。

\n\n

我还从https://github.com/OfficeDev/Excel-Custom-Functions-JS运行了示例项目,但无法加载并出现类似错误。

\n\n

我的管理员授予我访问加载项商店的权限,认为这可能是问题的一部分,但这没有帮助。

\n\n

我相信有一些 GPO 或设置禁用了自定义函数 API,但我不打算找到有关此类设置的任何文档。我已尽一切努力确认我提供的清单有效,但 Excel 仍声称其无效。

\n\n

Web项目的基本结构如下:

\n\n
C:.\n\xe2\x94\x82   Home.html\n\xe2\x94\x82   packages.config\n\xe2\x94\x82   WaveyWeb.csproj\n\xe2\x94\x82   WaveyWeb.csproj.user\n\xe2\x94\x82   Web.config\n\xe2\x94\x82   Web.Debug.config\n\xe2\x94\x82   Web.Release.config\n\xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80dist\n\xe2\x94\x82       functions.html\n\xe2\x94\x82       functions.js\n\xe2\x94\x82       functions.json\n\xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Properties\n        AssemblyInfo.cs\n
Run Code Online (Sandbox Code Playgroud)\n\n

我已确认网络服务器正在预期位置提供页面。

\n\n

这是我正在尝试加载的清单。Visual Studio 不会抱怨它无效,它会检查架构。如果我做出任何无效的更改,它确实会抱怨。

\n\n

请注意,~remoteAppUrl在构建时已正确转换

\n\n
C:.\n\xe2\x94\x82   Home.html\n\xe2\x94\x82   packages.config\n\xe2\x94\x82   WaveyWeb.csproj\n\xe2\x94\x82   WaveyWeb.csproj.user\n\xe2\x94\x82   Web.config\n\xe2\x94\x82   Web.Debug.config\n\xe2\x94\x82   Web.Release.config\n\xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80dist\n\xe2\x94\x82       functions.html\n\xe2\x94\x82       functions.js\n\xe2\x94\x82       functions.json\n\xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Properties\n        AssemblyInfo.cs\n …
Run Code Online (Sandbox Code Playgroud)

excel office365 office-js custom-functions-excel

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

从未知的xml中创建匿名对象

我想尝试从我编写的XML阅读器返回一个对象来处理一个具有部分未知结构的文件.

以下是XML的示例.

<xml>
  <strings>
    <Home>
      <Index>
        <PreWrapper>
          <Left>
            <Title>Blah</Title>
            <Body>Lorem ipsum dolor sit amet, consec tetuer adipiscing elit. Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. Fusce suscipit</Body>
            <LinkText>read more</LinkText>
            <LinkUrl>#</LinkUrl>
          </Left>
          <Center>
            <Title>Exploit your ideas</Title>
            <Body>Lorem ipsum dolor sit amet, consec tetuer adipiscing elit. Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. Fusce suscipit</Body>
            <LinkText>read more</LinkText>
            <LinkUrl>#</LinkUrl>
          </Center>
          <Right>
            <Title>Grow your business</Title>
            <Body>Lorem ipsum dolor sit amet, consec tetuer adipiscing elit. Praesent vestibulum molestie lacus. …
Run Code Online (Sandbox Code Playgroud)

c# xml anonymous-types

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

ToolStripMenuItem的奇怪视觉行为

我有一个下拉菜单,每次打开时都会动态填充,这是执行它的逻辑:

private void joysticksToolStripMenuItem_DropDownOpening(object sender, EventArgs e)
{
    _joysticks = _joystickWrapper.FindDevices(DeviceType.Joystick);
    joysticksToolStripMenuItem.DropDownItems.Clear();
    foreach (var di in _joysticks)
    {
        var item = new ToolStripMenuItem(di.ProductName);
        item.Checked = di.InstanceGuid == _joystickWrapper.CurrentDeviceInfo.InstanceGuid;
        joysticksToolStripMenuItem.DropDownItems.Add(item);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,这就是我所看到的:

那是对的......

检查位置错误,蓝色区域太宽.

关于在哪里寻找解决此问题的任何想法?整个菜单都是System.Windows.Forms,整个应用程序中没有自定义可视代码.

我在我当前的机器(Windows 10 Build 9926)和我的开发服务器(Server 2012R2)上尝试了相同的结果.我还将其编译为.NET Framework 4.5和4.5.1

编辑

对于那些感兴趣的人,这里是这个项目的git repo:

https://github.com/adam8797/RovControl

.net c# winforms drop-down-menu

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