问题列表 - 第47262页

如何从()=> foo.Title表达式获取对象实例

我有一个带有属性的简单类

class Foo 
{ 
    string Title { get; set; } 
}
Run Code Online (Sandbox Code Playgroud)

我试图通过调用函数来简化数据绑定

BindToText(titleTextBox, ()=>foo.Title );
Run Code Online (Sandbox Code Playgroud)

这被宣称为

void BindToText<T>(Control control, Expression<Func<T>> property)
{
    var mex = property.Body as MemberExpression;
    string name = mex.Member.Name;

    control.DataBindings.Add("Text", ??? , name);
}
Run Code Online (Sandbox Code Playgroud)

那么我应该???为我的Foo班级实例投入什么呢.如何foo从lambda表达式中获取对调用实例的引用?

编辑: 实例应该在某处,因为我可以调用property.Compile()并创建一个使用foo我的BindToText函数中的实例的委托.所以我的问题是,如果可以在不添加函数参数中实例的引用的情况下完成此操作.我呼吁Occum的Razor提供最简单的解决方案.

编辑2: 许多人没有注意到的是在我的函数内部访问实例时存在的闭包foo,如果我编译lambda.为什么编译器知道在哪里找到实例,我不知道?我坚持认为必须有一个答案,不必通过额外的论证.


感谢VirtualBlackFox解决方案是这样的:

void BindText<T>(TextBoxBase text, Expression<Func<T>> property)
{
    var mex = property.Body as MemberExpression;
    string name = …
Run Code Online (Sandbox Code Playgroud)

c# data-binding lambda expression-trees .net-3.5

26
推荐指数
1
解决办法
5820
查看次数

是否有可用的跨平台C信号库(更好的开源)?

我最近正在开发一个项目,我需要将部分Linux C代码移植到Windows.代码使用Linux信号机制(我的意思是"sigaction","sigprocmast"等等),这在Windows上得不到很好的支持.

是否有可用的C/C++库实现跨平台信号机制(更好的开源)? 目前我只需要该库来支持Linux和Windows.

我认为这个问题也对你有意义,因为有一天你可能会得到类似的任务.

我的一位同事告诉我,ACE是一个功能强大的库,可以完美地实现跨平台信号机制,但他说这是一个庞大的库,并且真的需要一些时间来研究它.我的项目没有给我太多时间,所以我正在努力寻找一个轻量级易于学习的信号库.(嗯......好吧,如果你知道的图书馆都很大,请告诉我.:-)

我已经在Google上做了很多关于这个主题的研究,但我找不到我想要的东西.这是我到目前为止所做的:

  1. 在Stackoverflow.com中搜索.人们询问了很多关于如何在Linux中使用信号的细节,但似乎没有人问过跨平台信号的实现.

  2. 或者,在Stackoverflow.com中,人们问了一种叫做"信号槽"的机制.我认为这不是我需要的.

  3. 在整个谷歌搜索.我尝试了关键词"C信号"跨平台"或跨平台-game -python -gui -audio -digital -analysis -slot -image -processing -socket -time -directmedia"但找不到我想要的东西.

请帮忙!谢谢!

c linux windows signals cross-platform

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

在JSF中重定向到外部URL

我一直在处理JSF的问题,当涉及到重定向到我的应用程序中的页面时,它工作正常,但我无法重定向到外部URL可以有人指导我吗?

jsf redirect jsf-2 external-url

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

C#:如何检测.在string中并在其后插入一个空格/如何在n个字符之后插入空格?

假设我有一个很长的字符串4600airportburlingame150anzablvd.burlingamecalifornia94010.我的代码打破了这个字符串.这是不寻常的,99%的参赛作品没有期限.如果字符串中有空格并且此处没有空格,则浏览器中的CSS会换行.

  1. 如何检测周期(".")并在其后直接插入空格?请记住,99%的字符串中没有句号.代码必须检测它是否有句点,如果是,则执行插入,否则不行.
  2. 如果我确定最大字符串长度,如何插入一定长度的空格?

c# string

0
推荐指数
1
解决办法
5504
查看次数

为什么我不能将常量字符串的串联分配给常量字符串?

有时我想分解一个常量字符串,原因是格式化,通常是SQL.

const string SELECT_SQL = "SELECT Field1, Field2, Field3 FROM TABLE1 WHERE Field4 = ?";
Run Code Online (Sandbox Code Playgroud)

const string SELECT_SQL = "SELECT Field1, Field2, Field3 " 
                        + "FROM TABLE1 " 
                        + "WHERE Field4 = ?";
Run Code Online (Sandbox Code Playgroud)

但是,C#编译器不允许第二种形式为常量字符串.为什么?

c# string const

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

设置程序必须在启动时从安装程序运行

我有一个C#.net 4应用程序,我开始创建安装程序.

安装的程序工作正常,但我的客户希望应用程序从窗口开始(它是一个"始终顶部"工具栏,帮助他们管理他们的调用).

我想创建一个"类安装程序",并在其中插入一个键在注册表中.

我有两个问题:

第一:如何找到可执行路径?它可以在安装之间改变.我在某处找到了Application.ExecutablePath,但它似乎位于Application.Window.Forms中,所以我认为它与WPF不兼容

第二:我需要在本地机器的注册表中插入此密钥.Windows安装程序中是否有一种方法可以指定用户必须具有管理员权限?

这是我开始的代码:

RegistryKey rkApp = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
rkApp.SetValue("CstStart", ???);
Run Code Online (Sandbox Code Playgroud)

非常感谢您的帮助!

编辑:我发现我可以传递给我的自定义操作一些数据,:

/ DIR = "[TARGETDIR] \"

在CustomActionData中.

通常它说我可以通过它检索它

this.Context.Parameters["DIR"];
Run Code Online (Sandbox Code Playgroud)

但是....似乎在我的安装程序类中,this.Context为null :(

EDIT2:Context是null因为我在构造函数中这样做,我现在正在this.AfterInstall中执行此操作,现在我得到一个上下文,它似乎包含一个var"assemblypath",其中包含我需要的路径.

c# registry installer startup visual-studio

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

蚂蚁与哈德森

我在Hudson中运行Job时遇到问题.我已经使用ANT_HOME配置了Hudson,其中包含ant和JDK的路径以及相对路径.我创建了一个新工作,在那里我设置了SVN路径和其他东西.我的项目的build.xml位于Project root Folder/build/build.xml中

他们在Linux中添加了build.xml.这是这样的.

<project name="Test Job" default="build">
    <target name="clean">
        <delete dir="${basedir}/svn/_build"/>
        <delete dir="${basedir}/build"/>
    </target>
    <target name="prepare">
        <mkdir dir="${basedir}/svn/_build/logs"/>
        <mkdir dir="${basedir}/build/logs"/>
        <mkdir dir="${basedir}/build/docs"/>
    </target>
    <target name="build"
            depends="clean,prepare"/>
</project> 
Run Code Online (Sandbox Code Playgroud)

注意:我将我的工作名称设置为usercentral.

然后我尝试在Hudson上构建.它给了我以下错误.

FATAL: command execution failed.Maybe you need to configure the job to choose one of your Ant installations?
java.io.IOException: Cannot run program "ant" (in directory "/root/.hudson/jobs/userCentral/workspace/branches/branches/build"): java.io.IOException: error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
    at hudson.Proc$LocalProc.(Proc.java:192)
    at hudson.Proc$LocalProc.(Proc.java:164)
    at hudson.Launcher$LocalLauncher.launch(Launcher.java:638)
    at hudson.Launcher$ProcStarter.start(Launcher.java:273)
    at hudson.Launcher$ProcStarter.join(Launcher.java:280)
    at hudson.tasks.Ant.perform(Ant.java:216)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
    at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:603) …

java svn ant hudson

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

system.outofmemoryexception填充DataAdapter时?

我必须150K从DB中提取记录.我正在使用da.Fill(ds,"Query")它的投掷system.outofmemoryexception.

Dim daGrid As New SqlDataAdapter(sqlcmd_q)
daGrid.Fill(dsGrid, "Query")
daGrid.Dispose()
Run Code Online (Sandbox Code Playgroud)

我只需要这个数据表.我不能使用XML.因为我需要将它分配给MSChartControl来显示ScotterPlot.

有什么建议?

c# asp.net visual-studio-2008

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

在构建后事件上更新本地nuget包

我的本地nuget库存储库分别用于我的个人和工作相关的类库.

我已经为不再开发的库创建了一些nuget包.我只为他们这样做,因为我不知道如何在项目构建后自动更新它们.

我认为所有的工作都是由nuget命令行和Visual Studio命令提示符完成的.所以我可以很容易地完成我需要的工作(当然我会完全了解命令而不是!)

基本上我希望在项目的post-build事件上执行以下任务.

在项目构建上:

  1. 将项目dll复制到特定文件夹(nuget包的lib文件夹)
  2. 更新nuspec文件以获取新文件版本(我的项目正在增加每个版本的文件版本)
  3. 使用新文件版本创建新的nupkg文件

Phil Haack展示了这个功能,但据我所知,它仍然是一个原型.

所以我的要求是上面的.有没有其他人完成这个?

c# asp.net post-build-event visual-studio nuget

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

如何创建大型PDF文件(10MB,50MB,100MB,200MB,500MB,1GB等)以进行测试?

我试过这个for ((i=1; i<=10; i++)); do convert 100MB.pdf 10MB.pdf 100MB.pdf; done来创建100MB文件,但很快用完RAM.

有任何想法吗?

pdf testing qa

39
推荐指数
4
解决办法
11万
查看次数