如何以编程方式将M4A文件转换为MP3或WMA文件?

问候, 我正在尝试找到一个免费的.NET库或命令行可执行文件,它允许我将M4A文件转换为MP3或WMA文件。 请帮忙 :)。

从客户端通过WCF取消长时间运行的任务

我有一个设置为PerCall的WCF服务 我想知道如何从客户端发送一个Start调用以启动一个长时间运行的进程,并发送一个Cancel命令来取消它 我的WCF服务看起来像这样 [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)] public class Service1 : IService1 { CancellationTokenSource cancelToken = new CancellationTokenSource(); public void Start() { var compute = Task.Factory.StartNew(StartLongRunningTask, cancelToken.Token); } public void Stop() { cancelToken.Cancel(); } private void StartLongRunningTask() { //process here } } 我想这里的问题是,每次呼叫到达服务器时,都会将其视为新请求。 那么如何在WCF中启动和取消长时间运行的任务呢? 编辑:我将它作为Windows服务托管

隐藏后如何再次显示表单?

我有两种forms。 我需要用按钮打开第二个表单。 当我打开form2时,我隐藏了form1。 但是,当我尝试使用按钮从form2再次显示form1时,它不起作用。 我的form1代码是: Form2 form2 = new Form2(); form2.ShowDialog(); 里面的form2代码: Form1.ActiveForm.ShowDialog(); 要么 Form1.ActiveForm.Show(); 要么 form1.show(); (form1 doesn’t exist in the current context) 不起作用。 我不想打开新表格 Form1 form1 = new Form1(); form1.ShowDialog(); 我想要展示我之前隐藏的forms。 或者我可以将它最小化到任务栏 this.WindowState = FormWindowState.Minimized; 并再次从form2最大化它。 Form2.ActiveForm.WindowState = FormWindowState.Maximized; 但是,我尝试的方式再次无效。 这些方法有什么问题?

流畅的NHibernate强制在外键引用上不可为空

刚刚尝试了一些流畅的NHibernate AutoMap惯例,并遇到了一些我无法弄清楚的事情。 我假设我只是没有找到正确的位置…基本上尝试在一对多关系的“多”方面强制执行NOT-NULL。 看来,使用自动化,它总是使父属性Id在数据库中可以为空。 我在StackOverFlow上做了一些搜索并发现了类似的问题,但是没有任何与AutoMapping和Conventions相关的内容(除非我错过了)。 快速举例…… public class Group // One Group { public Group() { this.Jobs = new List(); } public virtual Guid Id { get; set; } public virtual string Name { get; set; } public virtual IList Jobs { get; protected set; } } public class Job // Has many Jobs { […]

OpenSource .net短信息库

我一直在我的项目中使用GSM调制解调器来发送/接收 SMS-s。 我一直在使用.net的内置串口通信function来使用标准的AT命令。 现在我必须扩展其function(如PDU模式下的SMS,更有效的交付报告处理等)。 我不想重新发明轮子,所以首先我想知道是否有一个很好的开源项目或关于这个主题的免费图书馆。 它应该以文本和pdu模式发送/接收短信,处理发送报告。 我用谷歌搜索了它,但到目前为止我还没有找到一个有效的。 平台: Windows / .net4 / vs2010 / c#

Wpf事件没有冒泡

这是我的XAML: 这是C#代码: namespace WpfApplication4 { /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { protected int eventCounter = 0; public MainWindow() { InitializeComponent(); } private void somethingClicked(object sender, RoutedEventArgs e) { eventCounter++; String message = “#” + eventCounter.ToString() + “:\r\n” + ” Sender: ” + sender.ToString() + “:\r\n” + ” […]

在C#中使用内存映射文件时是否可以避免数据副本?

我对内存映射文件如何在C#中工作的理解是每个数据请求都会产生一个副本。 例如,如果您将大型数据结构保留为文件,则使用内存映射文件将导致映射到RAM的实际文件的内存,以及从文件读取后驻留在GC堆中的副本。 我假设这是因为指针和GC一般来说并不能很好地相处。 那么,有什么方法可以解决这个问题吗? 也许通过一些混合模式C ++可以通过内存映射数据公开托管API? 用不安全的C#直接指针操作怎么样? 我试图解决的一般问题是在多个进程之间共享一个大型数据结构。 数据结构用于回答一小部分“问题”,这些问题可以作为一个简单的API公开(即基本上是一堆其他数据的高度专业化的索引)。 另外,这不会使.NET API对“共享大量数据”场景无用吗?

Azure API服务器无法validation请求

我有一个任务(我尝试使用worker角色并上传控制台应用程序并运行.exe),该任务应该每天运行一次,并收集我的一些虚拟机的Azure Metrics。 这在本地完美无缺,但在云服务上我得到此错误: 未处理的exception:Microsoft.WindowsAzure.CloudException:ForbiddenError:服务器无法validation请求。 validation证书是否有效并与此订阅相关联。 在Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSucces …等 发生这种情况的路线是: MetricDefinitionListResponse metricListResponse = metricsClient.MetricDefinitions.List(resourceId, null, nspace); 这是我的代码的一部分: string subscriptionId = “fc4xxxx5-835c-xxxx-xxx-xxxxxxx”; // The thumbprint of the certificate. string thumbprint = “‎f5 b4 xxxxxxxx f7 c2”; // Get the certificate from the local store. //X509Certificate2 cert = GetCertificate(StoreName.My, StoreLocation.LocalMachine, thumbprint); //cert = GetCertificate(StoreName.My, StoreLocation.CurrentUser, thumbprint) ?? new X509Certificate2((“manageAzure.cer”)); […]

将数组从C#COM对象传递给JavaScript?

与此类似如何将一个字符串数组从ActiveX对象返回到JScript但在C#中。 我有一个COM控件,将一个字符串数组传递给javascript。 似乎javascript无法理解它是什么我传回来并且javascript中的数组总是未定义的。 使用Javascript: try { keystore.openKeyStore(“MY”, true, false); var fNames = new Array(); fNames = keystore.getAllFriendlyNames(); document.getElementById(‘par’).innerHTML = fNames[0]; } catch(err) { document.getElementById(‘err’).innerHTML = err.description; } 这为fNames[0];输出’undefined’ fNames[0]; C#: public object[] getAllFriendlyNames() { if (!keystoreInitialized) throw new Exception(“Key store has not been initialized”); X509Certificate2Collection allCerts = certificateStore.Certificates; int storeSize = allCerts.Count; if (storeSize == […]

是否有可能在ASP.NET MVC路径到达控制器之前更改它的querystring变量?

我在ASP.NET MVC中有一个控制器方法,如下所示: public ActionResult GetAlbumPictures(int albumId) { var album = AlbumRepo.GetSingle(albumId); var pictures = album.Pictures; return View(pictures); } 此方法的路由如下所示: routes.MapRoute(null, “pictures” new { controller = “Album”, action = “GetAlbumPictures” }); 用户将使用以下URL获取图片,按照相册ID进行过滤: GET http://server/pictures?albumid=10 但是,我想将querystring参数更改为album而不是albumid : GET http://server/pictures?album=10 这意味着需要将控制器方法修改为: public ActionResult GetPictures(int album) { … } 但是,这并不理想,因为现在该方法有一个名为album的参数,可以将其混淆为Album 对象而不是Album的ID 。 我的问题是,有没有办法配置ASP.NET MVC,以便在路由中,它将收到一个名为album的查询字符串参数,但然后将其作为albumId参数传递给控制器​​? PS我知道我可以在路由表中执行此操作: routes.MapRoute(null, “album/{albumId}/pictures”, new { […]