我正在尝试使用Web API 2属性路由来设置自定义API.我的路由工作,我的函数被调用,但由于某种原因,我需要传入我的第一个参数,以便一切正常工作.以下是我要支持的网址:
http://mysite/api/servicename/parameter1
http://mysite/api/servicename/parameter1?parameter2=value2
http://mysite/api/servicename/parameter1?parameter2=value2¶meter3=value3
http://mysite/api/servicename/parameter1?parameter2=value2¶meter3=value3&p4=v4
Run Code Online (Sandbox Code Playgroud)
最后3个URL可以工作,但第一个说"在控制器名称上没有找到与请求相匹配的操作".
我的控制器看起来像这样:
public class MyServiceController : ApiController
{
[Route("api/servicename/{parameter1}")]
[HttpGet]
public async Task<ReturnType> Get(string parameter1, DateTime? parameter2, string parameter3 = "", string p4 = "")
{
// process
}
}
Run Code Online (Sandbox Code Playgroud) 我想知道是否有办法处理WPF应用程序退出事件,以便取消退出.用例是我有一个客户端 - 服务器情况,其中服务器是WPF应用程序.我希望WPF应用程序在关闭时通知客户端,但取消关闭过程.客户端应该收到关闭通知,执行自己需要的清理,然后通过请求请求WPF应用程序关闭.
这可能吗?
我正在使用sqlite-net异步API来编写Windows Phone应用程序.在编写单元测试以确保我的sqlite-net API适配器正确创建文件时,我注意到适配器继续保持文件句柄,即使它已经超出范围.
异步连接类(SQLiteAsyncConnection)不支持,IDisposable所以我不能手动处理它.查看源代码,似乎异步API创建了一个连接,使用它并每次都处理它.但是,当我的测试清理代码尝试删除创建的测试数据库时,其他一些资源仍然保留在其上.
我已经通过SOAP Web服务选项为TFS 2012构建设置了一个自定义构建事件处理程序.这些处理程序运行良好,可以使用TFS为我们提供的XML有效负载.
我现在正在尝试构建一个可以显示构建类似信息的网页.但是,我不想经历尝试重新创建XML有效负载或修改我的接口以处理TFS对象而不是我通过解析有效负载定义的对象的麻烦.
那么,这个事件XML存储在DB的某个地方吗?是否可以通过TFS API访问或轻松生成?
我的WPF工具提示上有一种风格,它基本上使它看起来像一个语音泡泡.当控件位于窗口右侧时,气泡的尖部停止正确对齐,因为WPF重新对齐工具提示以适合窗口.无论如何根据工具提示的定位方式应用不同的样式?
我的XAML看起来像这样:
<Style x:Key="MyToolTip" TargetType="{x:Type ToolTip}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToolTip}">
<Grid x:Name="Grid">
<Grid.RowDefinitions>
<RowDefinition Height="20" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Rectangle Fill="#fff" Stroke="#FF000000" RadiusX="4" RadiusY="4" Grid.Row="1" />
<Path Fill="#fff" Stretch="Fill" Stroke="#FF000000" HorizontalAlignment="Left" Margin="8,0,0,-1.5" Width="20" Grid.Row="0"
Data="M 0,21 L 10,0 20,21" />
<ContentPresenter Margin="8" Grid.Row="1" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Placement" Value="Bottom" />
<Setter Property="HorizontalOffset" Value="-2" />
<Setter Property="Width" Value="250" />
<Setter Property="Height" Value="Auto" />
</Style>
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用NGen来查看我的应用程序的本机映像是否比.NET更好.但是,我在弄清楚该怎么做时遇到了一些麻烦.
我的应用程序名为MyApp.exe,它有几个依赖DLL.
我打开了VS 2010命令提示符并运行:
ngen install MyApp.exe /Profile
Run Code Online (Sandbox Code Playgroud)
命令输出未表明遇到任何问题.
然后我去了C:\ Windows\assembly尝试运行EXE,但我找不到它(我在Windows 7上).一点点挖掘告诉我使用命令提示符浏览到C:\ Windows\assembly\NativeImages_v4.0.30319_32.我最终很好地找到了我的MyApp.ni.exe,但当然无法在资源管理器中打开包含文件夹.
我试图运行该程序,它告诉我:
"C:\ Windows\assembly\NativeImages_v4.0.30319_32 ...\MyApp.ni.exe不是有效的Win32应用程序."
命令输出表示Access被拒绝.
我有两个问题:
谢谢.
我正试图通过使用关闭MonoMac应用程序Environment.Exit(0).但是,由于某种原因,此呼叫不会返回.它也不会抛出异常.当我在MonoDevelop的立即窗口中执行该功能时,它会超时.
我不知道如何进行调试.我以为Environment.Exit会杀死进程......
我正在尝试以编程方式将菜单添加到我的MonoMac应用程序中.我打开了MainMenu.xib并NSMenuItem从MainMenu控件中删除了所有内容.
我将以下代码添加到我的FinishedLaunching覆盖中:
var fileMenuItem = new NSMenuItem("File");
var fileMenu = new NSMenu();
var fileNew = new NSMenuItem("New");
var fileOpen = new NSMenuItem("Open");
var fileSave = new NSMenuItem("Save");
fileMenu.AddItem(fileNew);
fileMenu.AddItem(fileOpen);
fileMenu.AddItem(fileSave);
fileMenuItem.Menu = fileMenu;
NSApplication.SharedApplication.MainMenu.AddItem(fileMenuItem);
Run Code Online (Sandbox Code Playgroud)
但它没有做任何事情.
当我添加代码时MainWindowController.Initialize(),我得到一个断言失败"要插入菜单的项目已经在另一个菜单中"
我正在移植这个SO答案中找到的代码:用编程方式在其中创建带有NSMenuItems的NSMenu?
我正在尝试围绕堆栈设计数据结构,直到堆栈有可用项目为止.我尝试使用AutoResetEvent但我认为我误解了同步过程的工作原理.基本上,看下面的代码,我试图从没有可用的堆栈弹出.
它似乎AutoResetEvent表现得像一个信号量.那是对的吗?可我只是摆脱了Set()中BlockingStack.Get(),并用它做什么?或者这会导致我只使用我的一个堆栈项目.
public class BlockingStack
{
private Stack<MyType> _internalStack;
private AutoResetEvent _blockUntilAvailable;
public BlockingStack()
{
_internalStack = new Stack<MyType>(5);
_blockUntilAvailable = new AutoResetEvent(false);
for (int i = 0; i < 5; ++i)
{
var obj = new MyType();
Add(obj);
}
}
public MyType Get()
{
_blockUntilAvailable.WatiOne();
lock (_internalStack)
{
var obj = _internalStack.Pop();
if (_internalStack.Count > 0)
{
_blockUntilAvailable.Set(); // do I need to do this?
}
return obj;
}
}
public …Run Code Online (Sandbox Code Playgroud) 我不太了解MEF,所以希望这是我认为它的工作原理的简单解决方法.
我正在尝试使用MEF来获取有关类的一些信息以及如何使用它.我正在使用元数据选项来尝试实现此目的.我的接口和属性如下所示:
public interface IMyInterface
{
}
public interface IMyInterfaceInfo
{
Type SomeProperty1 { get; }
double SomeProperty2 { get; }
string SomeProperty3 { get; }
}
[MetadataAttribute]
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
public class ExportMyInterfaceAttribute : ExportAttribute, IMyInterfaceInfo
{
public ExportMyInterfaceAttribute(Type someProperty1, double someProperty2, string someProperty3)
: base(typeof(IMyInterface))
{
SomeProperty1 = someProperty1;
SomeProperty2 = someProperty2;
SomeProperty3 = someProperty3;
}
public Type SomeProperty1 { get; set; }
public double SomeProperty2 { get; set; }
public string SomeProperty3 { get; set; } …Run Code Online (Sandbox Code Playgroud)