小编Jan*_*Jan的帖子

Interop类型无法嵌入

我正在使用C#在.NET 4.0框架(beta2)上创建一个Web应用程序.

当我尝试使用名为"ActiveHomeScriptLib"的程序集时,出现以下错误:

无法嵌入Interop类型'ActiveHomeScriptLib.ActiveHomeClass'.请改用适用的界面.

当我将框架更改为3.5版时,我没有任何错误.

什么是互操作类型,为什么只有在我使用4.0框架时才会出现这种情况?

c# visual-studio-2010 visual-studio c#-4.0

648
推荐指数
7
解决办法
35万
查看次数

C#使用System.Type作为通用参数

我有一个类型列表(System.Type),需要在数据库中查询.

对于每种类型,我需要调用以下extensionmethod(它是LinqToNhibernate的一部分):

Session.Linq<MyType>()
Run Code Online (Sandbox Code Playgroud)

但是我没有MyType,但我想使用Type.

我有的是:

System.Type typeOne;
Run Code Online (Sandbox Code Playgroud)

但我无法执行以下操作:

Session.Linq<typeOne>()
Run Code Online (Sandbox Code Playgroud)

如何使用Type作为通用参数?

c# generics types .net-4.0

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

创建变量类型列表

我正在尝试创建某种类型的列表.

我想使用List符号,但我所知道的只是一个"System.Type"

类型a是可变的.如何创建变量类型列表?

我想要类似于这段代码的东西.

public IList createListOfMyType(Type myType)
{
     return new List<myType>();
}
Run Code Online (Sandbox Code Playgroud)

c# list

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

将存储过程的结果保存在Table变量中

可能重复:
如何选择*INTO [临时表] FROM [存储过程]

我有一个嵌套的存储过程调用

在其中一个存储过程中,我想将结果保存到表变量中,如下所示:

INSERT INTO @myTable 
EXEC sp_myStoredProcedure
Run Code Online (Sandbox Code Playgroud)

但是,因为proc.嵌套发生以下错误:INSERT EXEC语句不能嵌套

必须从另一个过程调用该过程,更改此选项不是一个选项.我想尝试使用输出参数,但仍然必须使用Insert into语句进行设置.

将从存储过程调用中检索到的数据保存到变量中的其他选项有哪些?

sql sql-server stored-procedures exec sql-server-2008

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

NHibernate获取没有代理的对象

我正在使用NHibernate(2.0.1.4)与NHibernate.Linq(1.0.0.4)从数据库中获取Node类型的对象.

当我得到这些对象时,我得到的集合的最后一个对象是Proxy类型(因为我使用了"NHibernate.ByteCode.LinFu"")

我使用了以下linq查询:

var mynodes = from node in session.Linq<Node>() where ancestorNodes.Contains(node.Id) select node).ToList()
Run Code Online (Sandbox Code Playgroud)

anchestorNodes是要获取的节点对象的Id列表.

当我在"ancestorNodes"列表中有3个id时,我从查询中获得的结果(mynodes)的最后一个对象是nodeProxy类型.

怎么会这样?为什么它总是最后一个对象?我怎么解决这个问题?

c# nhibernate proxy-classes

9
推荐指数
1
解决办法
7819
查看次数

使用HQL语句按id列表删除多个记录

我想删除某个实体的多个记录,其中实体的id在我拥有的ID列表中.我正在尝试使用NHibernate在C#中执行此操作.

我所拥有的是一个ID列表.

我想做类似的事情:

var idList = new List<Guid>() { Guid.NewGuid(),Guid.NewGuid()};

_session.CreateQuery("DELETE FROM MapsItem o WHERE o.Id = IN :idList")
    .SetParameterList("idList", idList)
    .ExecuteUpdate();
Run Code Online (Sandbox Code Playgroud)

这导致以下错误:

Exception of type 'Antlr.Runtime.NoViableAltException' was thrown. near line 1, column 33 [DELETE FROM Album o WHERE o.Id = IN  :idList]
Run Code Online (Sandbox Code Playgroud)

该查询是一个HQL语句.

HQL查询有什么问题.

对上述问题提供的两个答案都给出了正确的解决方案.但是,当我执行HQL时,错误是这样的:

could not insert/select ids for bulk delete[SQL: insert into #MapsItem SELECT mapsitem0_.Id as Id FROM MapsItem mapsitem0_ inner join BaseEntity mapsitem0_1_ on mapsitem0_.Id=mapsitem0_1_.Id WHERE Id in (? , ? , ? , ? , …
Run Code Online (Sandbox Code Playgroud)

c# nhibernate hql sql-delete

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

作为嵌入式资源的C#视图在构建后始终显示旧视图

我有一个MVC2网站,它使用其他程序集的视图.为此,我将视图标记为"嵌入式资源".

我能够看到视图但现在,当我改变视图时,我再也看不到变化了.

我将视图称为嵌入式资源的方式与此类似:

return View("~/Extension/Extensions.MyExtension.dll/" +
    "Extensions.MyExtension.Views.MyItem.Details.ascx", entity);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,"扩展"部分指示必须将视图作为嵌入资源加载.以下部分表示包含视图的程序集.最后一部分是视图的位置(包括命名空间).

在更改视图的整个内容后,如何仍然显示来自早期视图的数据.甚至将视图取消标记为嵌入资源.

为了确保我有最新的Extensions.myExtension.dll程序集,我将程序集复制到网站的bin文件夹中.我用反射器检查了组件,看看组件中是否有正确的视图.这是正确的观点,但我仍然看到旧视图.

更改视图的名称可以暂时解决问题,但对我来说这不是一个好的解决方案.当我将视图的名称更改回原来的状态时,会显示旧视图.

c# embedded-resource asp.net-mvc-views asp.net-mvc-2

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

运行单元测试时更改为app.config

我想运行一些单元测试.对于此测试,我需要使用app.config文件中的另一个值,然后使用默认值.

在这篇文章" 使用nunit重新加载app.config "中,我找到了一个解决方案.

但是,当一次运行多个测试时,某些测试会失败,因为在部署该函数后未调用旧的配置文件(app.config).怎么会这样?

c# unit-testing app-config

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

response.write编码错误

我在Web应用程序中有一个字符串字符串是这样的:

`1234567890-=[]\ ;',./\~!@#$%^&*()_+{}|:"<>?|
Run Code Online (Sandbox Code Playgroud)

编码后(通过使用Server.Encode()),它显示以下内容:

`1234567890-=[]\\ ;&#39;,./\\~!@#$%^&amp;*()_+{}|:&quot;&lt;&gt;?|
Run Code Online (Sandbox Code Playgroud)

哪个是对的

但是,当我使用Response.Write(theSecondExample)结果时是这样的:

`1234567890-=[]\ ;&#39;,./\~!@#$%^&amp;*()_+{}|:&quot;&lt;&gt;?|
Run Code Online (Sandbox Code Playgroud)

反斜杠丢失了!

怎么可能输出不符合我的预期?我该怎样预防呢?

c# encoding response.write c#-4.0

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