我正在开发一个WinForm应用程序.我想在用户点击按钮时播放MP3文件.
MP3文件位于执行应用程序的计算机的文件系统中.
我用谷歌搜索了一段时间,我找到了有关System.Media.SoundPlayer课程的信息.但我已经读过SoundPlayer该类只能用于播放.wav格式的文件.
可以使用哪些类来播放.mp3格式的文件?
任何帮助将不胜感激.
我有一个TableLayoutPanel,以两列和0行开头.我需要做的是,动态添加一行并用不同的控件填充两列(它将是面板).在Form1中,我以这种方式创建TableLayout:
TableLayoutPanel Table = new TableLayoutPanel();
Table.Location = new Point(10, 40);
Table.Size = new Size(620,100);
Table.AutoSize = true;
Table.Name = "Desk";
Table.ColumnCount = 2;
Table.RowCount = 0;
Table.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
Table.GrowStyle = System.Windows.Forms.TableLayoutPanelGrowStyle.AddRows;
this.Controls.Add(Table);
Run Code Online (Sandbox Code Playgroud)
之后在运行时我会得到我需要多少行,如果它们将填充Panel或某些Label.可能会发生在同一行中,将是Panel,right Label等.
什么是在.NET中调整图像的亮度对比度和灰度系数的简单方法
将自己发布答案以便稍后找到它.
http://services.odata.org/V4/Northwind/Northwind.svc/
我试图获得所有Customers,他们Orders和相应的Order_Details,并使用嵌套$expand的.要查询我正在使用以下链接的数据:http://services.odata.org/V4/Northwind/Northwind.svc/Customers?$expand=Orders($expand=Order_Details)
现在我正在尝试使用限制数据$select.问题是我找不到$select用于中间表的正确语法- Orders.我可以将它应用到顶部表格 - Customers并将其应用于底部表格- Order_Details如下所示:
在我的情况下,是否可以使用$ select表示中间的表格Orders?
我的C#应用程序使用包装的C++代码进行计算.
C++标题:
__declspec(dllexport) void SetVolume(BYTE* data, unsigned int width);
Run Code Online (Sandbox Code Playgroud)
C++/CLI包装器:
void SetVolume(array<Byte>^ data, UInt32 width)
{
cli::pin_ptr<BYTE> pdata = &data[0];
pal->SetVolume(pdata, width);
}
Run Code Online (Sandbox Code Playgroud)
C# :
public startCalc()
{
byte[] voxelArr = File.ReadAllBytes("Filtered.rec");
palw.SetVolume(voxelArr, 490);
//GC.KeepAlive(voxelArr); makes no sense
}
Run Code Online (Sandbox Code Playgroud)
C++ SetVolume函数启动异步计算.voxelArr不再从受管方引用,并且是垃圾回收.
在非托管代码完成它的工作而不声明voxelArr为全局变量之前,如何防止此引用的垃圾收集?创建数组副本不是一个选项,因为实际上有很多数据.内部的积极等待startCalc()也不好.
我的解决方案包含一些.net项目,其中一个是ASP.NET MVC项目,我正在尝试发布.所有配置都设置正确,x32和x64,其中没有设置为AnyCPU.
问题:
如果我尝试将项目发布为32位,一切都很好,但尝试以64位模式发布失败并显示错误:
Could not load file or assembly "ProjectA" or one of its dependencies.
An attempt was made to load a program with an incorrect format.
Run Code Online (Sandbox Code Playgroud)
我尝试过并注意到了什么:
自VS 2013以来,MSbuild是VS的一部分而不是.NET Framework的一部分.如果我只是在x64模式下构建解决方案,那么32位msbuild "C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe"首先运行并启动64位msbuild "C:\Program Files (x86)\MSBuild\12.0\Bin\amd64\MSBuild.exe"所以正常构建没有发布工作就好了.
但是,如果我选择publish,32位MSbuild首先运行,然后它启动32位aspnet_compiler c:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe而不是64位,这导致我上面提到的错误.
到目前为止,我发现的唯一解决方法是更换
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe"
Run Code Online (Sandbox Code Playgroud)
64位的
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe"
Run Code Online (Sandbox Code Playgroud)
题:
对我的问题有没有更好的(合法的)解决方案?这看起来像VS中的一个错误
msbuild asp.net-mvc aspnet-compiler visual-studio visual-studio-2013
嗨我试图了解新的身份验证机制如何在SPA模板中的MVC5中工作,我似乎感到困惑.我的最终目标是创建一个将暴露给SPA,iOS,Android和Windows的API电话客户
这是我的理解:
我明白在启动时不知何故装饰的类:
[assembly: OwinStartup(typeof(WebApplication1.Startup))]
Run Code Online (Sandbox Code Playgroud)
神奇地调用ConfigureAuth方法:
在这个方法中,我有3行代码,在启动类构造函数中,我初始化了OAuth身份验证选项:
static Startup(){
PublicClientId = "self";
UserManagerFactory = () => new UserManager<IdentityUser>(new UserStore<IdentityUser>());
OAuthOptions = new OAuthAuthorizationServerOptions {
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(PublicClientId, UserManagerFactory),
AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
AllowInsecureHttp = true
};
}
public void ConfigureAuth(IAppBuilder app)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
app.UseOAuthBearerTokens(OAuthOptions);
}
Run Code Online (Sandbox Code Playgroud)
ConfigureAuth中的前两行似乎将我的应用程序和外部应用程序设置为使用cookie来存储身份验证状态,而第三行似乎表明它正在为我的应用程序使用承载令牌.
从目前为止我对移动设备有限的了解,本机应用程序不了解cookie,我应该使用令牌进行身份验证.
如果是这种情况,不应该将externalSignIn设置为Bearer tokes而不是外部cookie吗?
在调试时我还注意到在OAuthProvider中,身份验证类型实际上设置为bearrer令牌.如果是这样的话,这行代码实际上是这样做的:
app.UseCookieAuthentication(new CookieAuthenticationOptions());
对于如何工作的一些澄清将非常感激我只能在网上找到信息,告诉我如何使用外部登录.
鉴于项目A是C#类库,而项目B是一个依赖于项目A的控制台应用程序.
在项目A中定义了以下类:
public class ActionMailNotifier : RazorMailerBase
{
private readonly string _viewPath;
private readonly EmailHost _emailConfig;
...
...
}
Run Code Online (Sandbox Code Playgroud)
"RazorMailBase"包含在项目A引用的外部DLL ActionMailer.dll中.
在项目B中定义了以下类:
public class EmailFareMonitorAlertNotifier : ActionMailNotifier
{
...
...
}
Run Code Online (Sandbox Code Playgroud)
如果Project B中未引用ActionMailer.dll,编译器将生成一条错误消息,指示需要对ActionMailer.dll的引用.有没有办法构建它,以便在项目B中不需要引用外部dll?
我有很多可视工作室项目,使用安装程序交付给客户.安装完成后,所有项目和解决方案文件都应该是最新安装的Visual Studio版本.有什么办法转换了很多项目快?
我试过以下:
1)解析文件并替换不同的属性等ToolsVersion.它快速但不可靠,应该针对每个新的Visual Studio进入市场(从现在开始每年AFAIK)
2)使用devenv升级功能,可靠但非常慢:
string[] files = Directory.GetFiles(@"c:\MyTmp", "*.sln", SearchOption.AllDirectories);
foreach (string file in files)
{
Process process = new Process();
process.StartInfo.FileName = pathToTheLatestVS;
process.StartInfo.Arguments = "/Upgrade \"" + file + "\"";
process.Start();
process.WaitForExit();
}
Run Code Online (Sandbox Code Playgroud)
3)尝试创建一个隐藏的VS实例,并按照此处的描述操作解决方案,但没有运气.
那么可以快速可靠地将许多项目/解决方案文件升级到特定的Visual Studio版本吗?
我有一个从DefaultAppPool帐户运行的Web应用程序.我想将一些文件写入DefaultAppPool的AppData文件夹(或任何其他文件夹,可以从我的应用程序运行的帐户100%访问)
我试过了
Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData)
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,它返回一个空字符串.
Environment.GetFolderPath(System.Environment.SpecialFolder.UserProfile)
Run Code Online (Sandbox Code Playgroud)
C:\\Users\DefaultAppPool按预期返回.
如何获取DefaultAppPool的AppData路径?
编辑: 此代码在模型中执行