是否可以在运行时更改方法体?
class Person
{
public void DoSth()
{ Console.WriteLine("Hello!"); }
}
Run Code Online (Sandbox Code Playgroud)
我想有一个简单的输入字段(如文本框),我可以在运行时编写方法体源代码.
文本框可能包含以下数据:
for (int i = 0; i < 5; i++)
Console.WriteLine(i);
Run Code Online (Sandbox Code Playgroud)
应该在什么时候进行
new Person().DoSth()
Run Code Online (Sandbox Code Playgroud)
叫做.
在C#(使用Reflection)中是否可以(或如何)?
感谢您的帮助.
编辑:
如果上述情况不可能,是否可以在运行时创建一个新方法并调用它?
我面临的问题是,似乎Visual Studio生成的某些文件不是提交所必需的.
除了不提交的显而易见的事情,我不应该提交哪些其他文件?我需要提交.manifest文件等吗?
一种不同的说法:重新创建我正在处理的项目需要哪些文件,以及哪些文件可以自动生成?
谢谢!
我目前正试图说服管理层需要将我们的一个应用程序移植到.NET.该应用程序已成为Access(SQL中的后端)中的一个怪物,具有700个链接表,650个表单/子表单,130个模块和850个查询.
我非常了解这样做的所有主要好处,但现在需要了解如何在技术上实现这一点,因此我可以将项目计划放在一起.
所以,我的计划是将查询转换为后端的存储过程和/或视图,并在WPF或WinForms中重写表单.
现在,代码是我解开的地方.是否有可能将代码打包并将模块打包到dll中并在将它们慢慢移植到VB/C#时使用它们?
我们不能留下的是VB/C#中的一半应用程序和Access中的一半应用程序,它必须"出现"所有应用程序,甚至是迁移的一半.
提前致谢.
编辑:更多关于我们做什么以及为什么我们正在考虑远离Access的信息.
我们本质上是一个ISV,Access应用程序是我们的主要产品.该应用程序已经开发了15年,由许多开发人员临时开发.此应用程序没有文档.
我们在SCC中使分支机构正常工作时也存在问题,因此我们目前为我们拥有的六个客户端提供了4或5个代码库.最重要的是,我们所做的所有测试都是完全手动的,您可以想象这是非常耗费人力的,而且只是划分了真正需要测试的内容.
我们目前正在寻求扩展,并且拥有一些处于最后阶段的销售线索.我担心,随着这些新的销售,我们将被支持和测试淹没,而且这个应用程序将变得更加纠结于一辆车.
我还要补充一点,即我们即将进入一个全新产品的规格阶段,这几乎肯定是用.NET构建的.如果我们要在.NET中重写Access应用程序,那么我们用于此的人可以直接进入这个新的开发.如果我们留在Access中,那么我们必须得到一些新的Access人员,一旦我们开始新的开发,他们将不得不接受再培训.
所以基本上它已经归结为两种选择,在Access中进行主要的重构工作以尝试并"更好地"组织代码,而那些建议剔除部件的人最有可能是正确的; 我确定有些部件不再使用.但是,我担心如果我们留在Access,我们仍然无法建立有效的测试,我们仍然没有适当的SCC分支,这将导致支持继续成为一场噩梦,以及任何未来的发展产品料更糟糕.无论哪种方式,我们即将开始进行大量工作,这要么是在Acces中完成的,要么是在.NET中完成的.
我正在开发一些所有需要数据库功能的ASP.NET MVC项目.不幸的是,我的托管服务提供商只给我两个SQL Server数据库,所以我想把多个项目的表放在一个数据库中.
但是,我的一些表名称相似,所以我可能遇到一些问题.因此,我试图找到一种方法来更改所有表的名称,以便它们反映它们所属的应用程序.
目前,我在项目A中有以下表格:
Table1Table2在项目B中,我有这些表格:
Table1Table2我想将表合并到一个数据库中:
ATable1ATable2BTable1BTable2Table1从我的代码映射到ATable1或BTable1(取决于它是什么应用程序)?隐私问题让我相信我应该为任何元数据擦除用户上传的图像.
我知道JPEG有EXIF,但我不确定PNG或GIF(两者都可以从公众上传到我的网站).
这些格式是否也有元数据,它是如何存储的?删除它的最佳方法是什么?
我正在使用PHP 5.29.
谢谢
我正在使用jsf-ri 2.0.3,需要希伯来语和俄语支持.问题是我在屏幕上看到的是乱码而不是正确的文字.
首先,我为每种语言定义了包(*_locale.properties).这些文件采用UTF-8编码.其次,我在faces-config.xml中定义了默认和支持的语言环境
<locale-config>
<default-locale>iw</default-locale>
<supported-locale>en</supported-locale>
<supported-locale>ru</supported-locale>
</locale-config>
Run Code Online (Sandbox Code Playgroud)
我添加了一个自定义过滤器,将响应字符编码设置为UTF-8.
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
最后当我创建一个简单的xhtml来调试输出时,我看到一个非常奇怪的结果
<f:loadBundle basename="i18n.frontend.homepage" var="msg"/>
<strong>i18n: </strong><h:outputText value="#{msg.language}"/>
<br/>
<strong>Locale: </strong>
<h:outputText value="#{facesContext.externalContext.response.locale}"/>
<br/>
<strong>Encoding: </strong>
<h:outputText value="#{facesContext.externalContext.response.characterEncoding}"/>
Run Code Online (Sandbox Code Playgroud)
结果是:
i18n: ×¢×ר×ת
Locale: en_US
Encoding: UTF-8
Run Code Online (Sandbox Code Playgroud)
我的配置有什么问题?
我有一个使用lambda语法的LINQ查询:
var query =
books
.Where(book => book.Length > 10)
.OrderBy(book => book.Length)
Run Code Online (Sandbox Code Playgroud)
我想创建一个匿名类型来存储投影,类似于:
var query = from book in books
where book.Length > 10
orderby book
select new { Book = book.ToUpper() };
Run Code Online (Sandbox Code Playgroud)
如何在lambda语法中"选择新"?
谢谢,
斯科特
在RSpec中,如果我有警告并且有
x.should == 42
another_line_of_code
Run Code Online (Sandbox Code Playgroud)
然后我收到警告
warning: useless use of == in void context
Run Code Online (Sandbox Code Playgroud)
有什么我可以做的除外
bitbucket = (x.should == 42)我正在使用Xalan 2.7.0(与Apache FOP 1.0捆绑在一起)并且在使用字符串函数时遇到问题.
该行<xsl:value-of select="fn:replace('test', 't', '*')"/>导致此异常:
javax.xml.transform.TransformerException: java.lang.IllegalArgumentException: argument type mismatch
at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:302)
Run Code Online (Sandbox Code Playgroud)
<xsl:value-of select="fn:string-length('foobar')"/> 结果是:
javax.xml.transform.TransformerException: java.lang.NoSuchMethodException: For extension function, could not find method java.lang.String.stringLength([ExpressionContext,] ).
at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:302)
Run Code Online (Sandbox Code Playgroud)
现在这很奇怪!为什么Xalan会寻找一个stringLength函数java.lang.String?我测试了<xsl:value-of select="fn:substring('foobar', 2, 3)"/>,确实:结果是o,所以参数被用作startIndex, endIndex(比如java.lang.String.substring())而不是XPath的fn:substring(string, start, length)函数.
所以我认为Xalan在某种程度上错过了它的XPath函数库,而是使用了常规的String类.我通过调用不存在的函数fn:index-of('foobar', 'bar')来确认这一点,该函数工作正常并映射到java.lang.String.indexOf(str).
为什么Xalan会这样做?我该如何解决?
系统信息:Xalan使用标准的Mac OS X 10.6.4 Java版本1.6.0_20.
更新
好吧,replace()暂时搁置这个功能.作为一个XSLT 1.0处理器,Xalan不应该实现XPath 1.0函数子字符串 (string, startIndex, length)而不是(string, startIndex, endIndex) …
据说Linux内核是SMP.据说进程和内核线程应该跨处理器分布.
是否所有Linux发行版都像fedora13,ubuntu 10.04 Lucid默认启用SMP Linux?
在SMP Linux上,最好遵循a)多进程方法而不是b)多线程方法
默认情况下,pthread是否会创建内核级线程,以便任何应用程序都可以利用LWP和SMP?
如果没有,如何使用Pthreads创建内核级线程.任何参考将非常感谢.