小编Cra*_*gly的帖子

Enum.GetValues()返回类型

我已经阅读了文档,声明'给定枚举的类型,System.Enum的GetValues()方法将返回给定枚举的基本类型的数组'即int,byte等

但是我一直在使用GetValues方法,所有我一直回来的是一个Enums类型的数组.我错过了什么?


public enum Response
{
    Yes = 1,
    No = 2,
    Maybe = 3
} 

foreach (var value in Enum.GetValues(typeof(Response))) { var type = value.GetType(); // type is always of type Enum not of the enum base type }

谢谢

c# enums

58
推荐指数
4
解决办法
6万
查看次数

该进程无法访问该文件,因为该文件正由另一个进程使用

我从SQL Server数据库字段获取二进制数据,并在我的应用程序具有权限的目录中本地创建文档.但是我仍然得到标题中指定的错误.我已尝试在网上发布了许多建议,包括在Stackoverflow上的帖子中提出的建议.我还使用了ProcessExplorer> Find Handle来找到锁,它没有返回任何内容,好像文件没有被锁定一样.

我使用下面的代码将文件保存到文件系统,然后我尝试在另一个方法的应用程序进程中将此文件复制到新位置.正是这种复制方法采用了抛出异常的新创建文件的路径.

文件本身是用它的内容创建的,我可以通过Windows资源管理器打开它,没有任何问题.

我错过了一些完全明显的东西吗 我是否正确地从数据库创建文件?任何有关解决或更好地诊断问题的帮助将非常感激.

// Get file from DB
FileStream fs = new FileStream(
    "C:\myTempDirectory\myFile.doc", FileMode.OpenOrCreate, FileAccess.Write);
BinaryWriter br = new BinaryWriter(fs);
br.Write("BinaryDataFromDB");
fs.Flush();
fs.Close();
fs.Dispose();

// Copy file
File.Copy(sourceFileName, destinationFilename, true);
Run Code Online (Sandbox Code Playgroud)

c# asp.net

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

如何在上传时检查文件大小

什么是使用asp.net和C#在上传过程中检查文件大小的最佳方法?我可以通过改变我的web.config上传大文件而不会有任何问题.当上传的文件超过我允许的最大文件大小时,我的问题就出现了.

我已经研究过使用activex对象,但这不是跨浏览器兼容的,也不是解决方案的最佳答案.我需要它是跨浏览器兼容的,如果可能的话,并支持IE6(我知道你在想什么!!但是我的应用程序用户中有80%是IE6,不幸的是,这不会很快改变).

有没有任何开发人员遇到同样的问题?如果是这样,你是如何解决它的?

c# asp.net

14
推荐指数
5
解决办法
7万
查看次数

为什么TransactionScope操作无效?

我有一个例程,它使用递归循环将项插入SQL Server 2005数据库.启动循环的第一个调用包含在使用TransactionScope的事务中.当我第一次调用ProcessItem时,myItem数据会按预期插入到数据库中.但是,当从ProcessItemLinks或ProcessItemComments调用ProcessItem时,我收到以下错误.

"该操作对交易状态无效"

我正在使用Windows 7上的VS 2008进行调试,并运行MSDTC以启用分布式事务.下面的代码不是我的生产代码,但设置完全相同.AddItemToDatabase是我无法修改的类上的方法,并使用标准的ExecuteNonQuery()创建连接,然后关闭并在完成后进行处置.

我看过这里和互联网上的其他帖子仍然无法解决这个问题.任何帮助将非常感激.

using (TransactionScope processItem = new TransactionScope())
{
    foreach (Item myItem in itemsList)
    {
        ProcessItem(myItem);
    }   
    processItem.Complete();
}    
private void ProcessItem(Item myItem)
{
    AddItemToDatabase(myItem);
    ProcessItemLinks(myItem);
    ProcessItemComments(myItem);
}    
private void ProcessItemLinks(Item myItem)
{
    foreach (Item link in myItem.Links)
    {
        ProcessItem(link);
    }
}   
private void ProcessItemComments(Item myItem)
{
    foreach (Item comment in myItem.Comments)
    {
        ProcessItem(comment);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是堆栈跟踪的顶部.不幸的是,我无法将这一点的构建显示为公司敏感信息,我无法透露.

   at System.Transactions.TransactionState.EnlistPromotableSinglePhase(InternalTransaction tx, IPromotableSinglePhaseNotification promotableSinglePhaseNotification, Transaction atomicTransaction)
   at System.Transactions.Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification promotableSinglePhaseNotification)
   at System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx)
   at System.Data.SqlClient.SqlInternalConnection.Enlist(Transaction tx)
   at …
Run Code Online (Sandbox Code Playgroud)

c# asp.net transactionscope

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

无法在自定义配置文件提供程序中加载类

我在C#中编写一个小型控制台应用程序,它引用了一个实现自定义.net Profile提供程序的自定义程序集.我已将以下部分添加到我的app.config文件中,该文件引用了自定义类和程序集.

<system.web>
<profile defaultProvider="MyCompanyProfileProvider" inherits="MyCompany.Web.User.GenericProfile" automaticSaveEnabled="false">
    <providers>
        <clear/>
        <add name="MyCompanyProfileProvider" connectionStringName="defaultDatabase" applicationName="/myApplication" type="MyCompany.Web.ProfileProvider, MyCompany.Web"/>
    </providers>
    <properties>
        <add name="JobRoleId" type="System.Int32"/>
        <add name="LastCompetencyId" type="System.Int32" defaultValue="0"/>
        <add name="MixSettings" type="System.Xml.XmlDocument"/>
    </properties>
</profile></system.web>
Run Code Online (Sandbox Code Playgroud)

但是,当我在调试模式下运行应用程序时,我得到以下错误,就好像它正在查看System.Web程序集而不是app.config文件中指定的那个.

无法从程序集'System.Web,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'加载类型'MyCompany.Web.User.GenericProfile'.

我有一个本地Web应用程序,也使用程序集和自定义配置文件提供程序,并且没有任何问题.我已经检查了引用的程序集被复制到输出目录.

有任何想法吗??

c# asp.net-profiles console-application

10
推荐指数
1
解决办法
3851
查看次数

在.NET中使用Blowfish加密

我正在开展一个项目,我需要进行Blowfish加密和解密.是否存在其他人在其中使用的内容,但在.NET C#环境中找不到任何内容?

理想情况下,我会喜欢不依赖于运行exe的东西,因为这最终将存在于exe服务器的实时服务器上!

我已经阅读了一些关于SO的旧帖子,但没有什么合适的.

有任何想法吗?谢谢

c# encryption blowfish

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

Ninject使用WCF Web API Preview 5

任何人都可以指出我正确的方向让Ninject使用WCF Web API Preview 5吗?我已成功启动并运行在我的ASP.NET MVC 3项目中以及使用Ninject.Extensions.Wcf库的另一个内部WCF服务中.但是,在创建新的MVC 3项目并从NuGet获取WebApi.All库时,我无法使其工作.

我已经看过这个stackoverflow post 使用新的WCF Web API设置Ninject但是无法让它工作,我认为可能与最新版本中的一些更改有关.

我也不确定哪个Ninject图书馆可以参考主要图书馆.我是否使用Ninject.MVC3,Ninject.Extensions.Wcf.

任何有关这方面的帮助将非常感激.

****更新**

我正在使用的代码来自上述问题的答案.我在自己的类文件中有这个.

   public class NinjectResourceFactory : IResourceFactory
    {
        private readonly IKernel _kernel;

        public NinjectResourceFactory(IKernel kernel)
        {
            _kernel = kernel;
        }

        public object GetInstance(Type serviceType, InstanceContext instanceContext, HttpRequestMessage request)
        {
            return _kernel.Get(serviceType);
        }

        public void ReleaseInstance(InstanceContext instanceContext, object service)
        {
            // no op
        }
    }
Run Code Online (Sandbox Code Playgroud)

我在global.asax中有这个:

var configuration = HttpConfiguration.Create().SetResourceFactory(new NinjectResourceFactory());
RouteTable.Routes.MapServiceRoute<myResource>("resource", configuration);
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是IResourceFactory接口无法识别,并且HttpConfiguration.Create()不再存在,所以我需要设置SetResourceFactory,我尝试使用HttpConfiguration()创建其他方法.CreateInstance方法但没有喜悦.

ninject wcf-web-api

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

实体框架 - 使用外键插入多个表

我是EF的亲戚,并使用EF4创建了一个简单的模型(见下文). 替代文字

我在将新记录插入UserRecord实体并随后添加使用新创建的UserRecordId作为其主键的UserDetail实体时遇到问题.下面显示的代码用于在我的数据库具有一对多关系时工作,但当我将其更改为一对一关系时,我会在下面的图像中突出显示错误. 替代文字

我认为它不起作用,因为现在没有与UserRecord关联的UserDetails属性,因为它现在是一对一的关系.我的问题是我现在如何以一对一的关系插入新的UserRecord和相应的UserDetail实体?

任何有关这一方面的帮助都非常受欢迎,因为一直在搜索网络并尝试各种不同的事情而没有成功.

干杯

Cragly

entity-framework entity-framework-4

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

使用NET.TCP绑定的Ninject WCF扩展ArgumentNullException

我有一个WCF 4服务,其中2个端点配置为使用wsHttpBinding和netTcpBinding.我使用WAS在IIS 7.5中托管服务,并使用Ninject WCF扩展到DI进入我的服务.当我使用wsHttpBinding端点来调用我的服务但是当我使用netTcpBinding时失败,我的服务工作正常.当我查看我的应用程序事件日志时,我收到以下错误.

我已经尝试在VS2010中调试这个问题,但是这个问题无处可寻.如果可能的话,我不想从我的WCF服务中删除Ninject.我知道我可以使用wsHttpBinding,但我这是一个内部服务,我想获得netTcpBindings提供的性能提升.

WebHost failed to process a request.
 Sender Information: System.ServiceModel.ServiceHostingEnvironment+HostingManager/30180123
 Exception: System.ServiceModel.ServiceActivationException: The service '/ProfileService.svc' cannot be activated due to an exception during compilation.  The exception message is: Cannot be null
Parameter name: root. ---> System.ArgumentNullException: Cannot be null
Parameter name: root
   at Ninject.Infrastructure.Ensure.ArgumentNotNull(Object argument, String name) in c:\Projects\Ninject\ninject\src\Ninject\Infrastructure\Ensure.cs:line 20
   at Ninject.ResolutionExtensions.Get[T](IResolutionRoot root, IParameter[] parameters) in c:\Projects\Ninject\ninject\src\Ninject\Syntax\ResolutionExtensions.cs:line 37
   at System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses)
   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.CreateService(String normalizedVirtualPath)
   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(String normalizedVirtualPath)
   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)
   --- End of inner …
Run Code Online (Sandbox Code Playgroud)

.net wcf ninject ioc-container ninject-extensions

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

VS2012 发布到多个位置

我目前正在使用 VS2012 中的内置发布功能将 ASP.NET MVC 站点发布到 Web 服务器上的文件系统目录共享。无论如何,当我单击“发布”按钮时,我可以将它发布到多个位置而不仅仅是一个位置吗?

我不想创建第二个配置文件并且必须两次执行相同的过程,我已经考虑通过添加附加标记来修改 pubxml 文件,以查看发布例程是否将其选中。但不幸的是,它似乎只是选择了列表中的最后一个配置。

我知道理想的情况是实施 CI 解决方案,但目前我的手与发布功能有关,需要保持相对简单。

非常感谢

web-deployment visual-studio-2012

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