小编ant*_*ony的帖子

LSUIElement无效

我有一个在Info.plist中有LSUIElement = 1的应用程序.当我运行应用程序时,会为它创建一个停靠项和顶级菜单栏.为什么?

编辑:

我正在使用一个调用TransformProcessType()的库,破坏我的Info.plist配置.

macos cocoa info.plist lsuielement

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

如何创建一个Ninject自定义作用域,它返回相同的对象,直到该对象被处置?

在Ninject中,在单例范围内声明绑定意味着每次都会返回相同的对象.永远只能有一个对象.

我想要的是一次返回一个对象.换一种说法:

  1. 第一次调用Get()实例化一个新对象并返回它.
  2. 对Get()的后续调用返回相同的实例.
  3. 物体被丢弃.
  4. 在处理对象之后对Get()的第一次调用实例化一个新的/第二个对象并返回该对象.
  5. 对Get()的后续调用将返回在步骤4中创建的对象.

编辑:使用提供程序解决此问题实际上相当简单,并且在处理时让相关对象引发事件.我很好奇是否有办法在Ninject中使用范围进行此操作,并且会在此留下这个问题,因为史蒂文的答案非常好.

scope dependency-injection ninject inversion-of-control

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

从其他接口继承的接口的显式 C# 接口实现

考虑以下三个接口:

interface IBaseInterface
{
    event EventHandler SomeEvent;
}

interface IInterface1 : IBaseInterface
{
    ...
}

interface IInterface2 : IBaseInterface
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

现在考虑以下实现 IInterface1 和 IInterface 2 的类:

class Foo : IInterface1, IInterface2
{
    event EventHandler IInterface1.SomeEvent
    {
        add { ... }
        remove { ... }
    }

    event EventHandler IInterface2.SomeEvent
    {
        add { ... }
        remove { ... }
    }
}
Run Code Online (Sandbox Code Playgroud)

这会导致错误,因为 SomeEvent 不是 IInterface1 或 IInterface2 的一部分,而是 IBaseInterface 的一部分。

Foo 类如何同时实现 IInterface1 和 IInterface2?

c# implementation explicit interface explicit-implementation

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

log4net:为每个翻转日志段写一个标题

我有一个RollingFileAppender,它在达到指定的文件大小时翻过日志文件.这非常有效.

有没有办法让log4net在每个新创建的日志文件的顶部插入一个标题?或者,是否有一种方法可以在发生翻转时通过log4net进行通知,以便我可以自己编写此标头?

.net c# logging log4net

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

VisualStudio:将构建版本转换为日历日期

我知道Visual Studio生成的版本字符串基于运行构建的日期/时间.鉴于Visual Studio生成的部分版本字符串"3856.24352",如何将其转换为发生该版本的日历日?

versioning assemblies visual-studio

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

RESTful API响应状态代码消除歧义

我正在开发一个RESTful API,并对某些场景中最合适的响应状态代码提出疑问.

考虑客户端对资源发出GET请求的情况.对于资源合法不存在的情况,如何可能存在轻微的服务中断(在部署期间等),我如何消除"未找到"响应的歧义.

rest web-services http response http-status-codes

4
推荐指数
2
解决办法
1709
查看次数

使用Sgen和ILMerge预生成XmlSerializers.阵列麻烦

我广泛使用XmlSerializer而不是允许.NET在运行时生成必要的序列化程序集,我想提前生成这些程序集并将它们与我的应用程序捆绑在一起.我能够使用Sgen在构建时生成这些程序集.另外,我必须为我将序列化的每个数组类型单独运行Sgen(使用sgen/t:Foo []).最后,我使用ILMerge将数组类型序列化类合并到Foo.XmlSerializers.dll程序集中.我已经用ildasm验证了Foo.XmlSErializers.dll确实包含了所有合并的类.

在运行时,.NET从Foo.XmlSerializers.dll成功加载FooSerializer,而不调用csc并生成临时程序集.但是,.NET无法从同一个dll加载ArrayOfFooSerializer,实际上会调用csc.

如何成功预生成阵列的序列化类型?

考虑以下2个程序集及其简化内容:

汇编:MyApp.exe

public class MyApp
{
    public static int Main(string[] args)
    {
        new XmlSerializer(typeof(Foo));
        new XmlSerializer(typeof(Foo[]));
    }
}
Run Code Online (Sandbox Code Playgroud)

汇编:Foo.dll

public class Foo
{

}
Run Code Online (Sandbox Code Playgroud)

更多信息:

以下app.config导致将与XmlSerialization相关的事件添加到事件日志中

<configuration>
  <system.diagnostics> 
    <switches> 
      <add name="XmlSerialization.PregenEventLog" value="1" />
      <add name="XmlSerialization.Compilation" value="1" />
    </switches> 
  </system.diagnostics>
</configuration>
Run Code Online (Sandbox Code Playgroud)

我看不到Foo类型的事件.我看到Foo []的以下消息:

预生成的序列化程序'Foo.XmlSerializers'已过期.您需要为'Foo []'重新生成序列化程序.

.net xml ilmerge sgen xml-serialization

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

OSX:为什么GetProcessInformation()会导致段错误?

这是我的C方法来获取Finder进程的pid.GetProcessInformation()导致段错误.为什么?

这是功能:

static OSStatus
GetFinderPID(pid_t *pid)
{
    ProcessSerialNumber psn = {kNoProcess, kNoProcess};
    ProcessInfoRec info;
    OSStatus status = noErr;

    info.processInfoLength = sizeof(ProcessInfoRec);
    info.processName = nil;

    while (!status)
    {
        status = GetNextProcess(&psn);
        if (!status)
        {
            status = GetProcessInformation(&psn, &info);
        }
        if (!status &&
            info.processType == 'FNDR' &&
            info.processSignature == 'MACS')
        {
            return GetProcessPID(&psn, pid);
        }
    }

    return status;
}
Run Code Online (Sandbox Code Playgroud)

这是回溯:

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000032aaaba7
0x00007fffffe00623 in __bzero ()
(gdb) bt
#0  0x00007fffffe00623 in …
Run Code Online (Sandbox Code Playgroud)

c macos finder process

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

NHibernate的cfg.xml文件的单声道验证

我正在尝试在Mono中设置NHibernate,以便在SQLite中存储对象.

我已经复制/粘贴了示例配置文件.我只有以下两行代码:

var config = new Configuration();
config.Configure();
Run Code Online (Sandbox Code Playgroud)

这导致以下不符合语法的验证异常:

System.InvalidOperationException:发生了从Finished到Content的验证状态转换的意外尝试.

我不确定问题是什么.如果问题是Mono特定的,那么我想找到一个解决方法.

编辑:

这可能是也可能不是问题,但我已切换到FluentNHibernate进行配置.强烈推荐.

c# nhibernate mono xsd

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

NSTextView:加载RTF,在鼠标移动到控件上之前,视图无法正确更新

我有一个非常简单的窗口,其中包含一个NSTextView.我正在调用readRTFDFromFile:在磁盘上加载并显示rtf文件.我是在awakeFromNib处理程序中调用它的.当视图出现在屏幕上时,它仅部分显示rtf的内容,视图的按钮部分为空白/白色.

但是,当鼠标移动到控件上时,rtf的其余部分将被正确渲染,填充以前的空白区域.

关于为什么会这样,我有点不知所措.有任何想法吗?

macos cocoa nstextview

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