我WCF
在本地系统上的服务用户下运行服务.每次我尝试调试它都会给我一个消息Attach Security warning
.
在Visual Studio中,默认情况下(即使没有附加),我收到此错误:
附加到此过程可能会损害您的计算机.如果以下信息看起来可疑或您不确定,请不要附加到此过程
名称:C:\ Windows\System32\inetsrv\w3wp.exe
什么是w3wp.exe
?根据Google搜索,我认为它与IIS有关.但是它做了什么?应该更改哪些设置,以便每次尝试在本地系统上调试时都不会显示此消息?
*在XAML中意味着什么.我有一个宽度为400的网格.并将网格划分为3列.*.4是什么意思?我认为这是可用空间的40%.因此,前两列将分别获得40%的百分比,其余的则由第三列获得.但看起来,第三列占60%,前两个占20%.这是如何运作的?
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width=".4*"/>
<ColumnDefinition Width=".4*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
</Grid>
Run Code Online (Sandbox Code Playgroud)
我试图使用ModelState对象向客户端发送错误; 我正在使用asp.net Web API进行服务.
在Web服务方面,我这样做.
public HttpResponseMessage VerifyData(Cobject data)
{
string[] errors;
if (!VerifyAllRequiredData(data, out errors))
{
foreach(string error in errors)
ModelState.AddModelError("", error);
return Request.CreateErrorResponse(HttpStatusCode.ExpectationFailed, ModelState);
}
return Request.CreateResponse(HttpStatusCode.OK, data);
}
Run Code Online (Sandbox Code Playgroud)
我正在为该服务创建一个.NET客户端库,以便我们可以将它用于存在Windows应用程序.
在客户端:
public bool VerifyData(Cobject data)
{
try
{
HttpClient c = new HttpClient();
c.BaseAddress = BaseAddress;
c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(JsonHeader));
c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(HTMLHeader));
c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(TextHeader));
var asyncResponse = this.PostAsJsonAsync(url, data);
asyncResponse.Wait();
asyncResponse.Result.EnsureSuccessStatusCode();
return true;
}
catch (HttpRequestException hre)
{
Console.WriteLine(hre.Message);
return false;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
return false;
} …
Run Code Online (Sandbox Code Playgroud) 我正在开发一个大型MVVM应用程序.我正在使用MVVM light工具包.该应用程序就像一个带有后退和前进按钮的Web浏览器.主视图是用户控件.我在主视图用户控件中放置了后退和前进按钮.主视图又具有用户控件.单击后退和前进按钮时,用户控制更改.主ViewModel跟踪当前用户控件并根据按钮单击加载下一个用户控件.
根据第一步中的选择(ID)加载所有这些用户控件.可以说,主视图是一个搜索屏幕,我们选择一个客户.接下来的屏幕将是地址,账单,请求等.这些屏幕不共享任何数据.但数据是针对同一客户的.
那么,在主视图中存储客户ID是一种很好的做法吗?如果我这样做,我应该有一个绑定到命令的UserControl_Loaded事件,然后我会请求地址和账单信息.
或者我可以将按钮(后退和前进按钮)移动到每个用户控件而不是主视图,将客户ID传递给将加载下一个视图的消息.
哪个更好?
什么是进行数据验证的最佳方法.在视图模型中进行验证还是在模型中进行验证是一种好的做法?而且,使用MVVM在WPF中实现数字(十进制)文本框的最佳方法是什么.我正在使用MVVM Light工具包.
我有一个目录“C:\Program Files (x86)\Windows Kits”。当我构建 winPhone 应用程序时,正在调用此文件夹子文件夹中的 exe。我没有专门安装这个。它是如何安装在我的系统上的?我猜它可能是通过 Windows 安装或一些 Visual Studio 安装来的。我该如何更新?我也有 8.0、8.1 和 10 作为子文件夹。我想我可以从这里手动更新每个版本。https://developer.microsoft.com/en-us/windows/downloads/sdk-archive
只是想弄清楚这些是如何安装的以及它们应该如何升级。
我在WPF应用程序中异步使用WCF服务.所以我上课了所有的网络服务.视图模型调用此proc中的方法,该方法又调用Web服务.
所以视图模型代码如下所示:
WebServiceAgent.GetProductByID(SelectedProductID, (s, e)=>{States = e.Result;});
Run Code Online (Sandbox Code Playgroud)
WebService代理看起来像:
public static void GetProductByID(int ProductID, EventHandler<GetProductListCompletedEventArgs> callback)
{
Client.GetProductByIDCompleted += callback;
Client.GetProductByIDAsync(ProductID);
}
Run Code Online (Sandbox Code Playgroud)
这是一个好方法吗?我正在使用MVVM light toolkit.所以View Model是静态的,所以在应用程序的生命周期中,视图模型保持不变.但每次视图模型调用此WebServiceAgent时,我认为我正在注册一个事件.但该事件并未取消注册.
这是一个问题.让我们说视图模型被调用了20到30次.我插入某种内存泄漏?
我想获取所点击行的值/ ID.如果选择该行,这可以正常工作.但是,如果我只是尝试单击内部按钮,则所选客户为空.我如何在此处执行命令参数.
我试过这个看到以下问题的答案:
这是代码:
<Grid>
<ListView ItemsSource="{Binding Path=Customers}"
SelectedItem="{Binding Path=SelectedCustomer}"
Width="Auto">
<ListView.View>
<GridView>
<GridViewColumn Header="First Name">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Margin="6,2,6,2">
<TextBlock Text="{Binding Name}"/>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Address">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Margin="6,2,6,2">
<Button Content="Address" Command="{Binding Path=DataContext.RunCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ItemsControl}}}"/>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</Grid>
public class VM : ViewModelBase
{
public RelayCommand RunCommand { get; private set; }
private ObservableCollection<Customer> _Customers;
public ObservableCollection<Customer> Customers
{
get { return _Customers; }
set …
Run Code Online (Sandbox Code Playgroud) 嗨,我正在尝试使用带有MVVM的telerik Busy指示器.我在Mainwindow有忙碌指示器.当窗口中的某个用户控件上有操作(按钮单击)时,用户控件视图模型会向MinwindowviewModel发送消息.在消息上,应该显示忙碌指示符.但这不起作用.为什么这不起作用?
用户控制视图模型
public class GetCustomerVM : ViewModelBase
{
private int _CustomerId;
public int CustomerId
{
get { return _CustomerId; }
set
{
if (value != _CustomerId)
{
_CustomerId = value;
RaisePropertyChanged("CustomerId");
}
}
}
public RelayCommand StartFetching { get; private set; }
public GetCustomerVM()
{
StartFetching = new RelayCommand(OnStart);
}
private void OnStart()
{
Messenger.Default.Send(new Start());
AccountDetails a = AccountRepository.GetAccountDetailsByID(CustomerId);
Messenger.Default.Send(new Complete());
}
}
Run Code Online (Sandbox Code Playgroud)
用户控制视图模型是:
private bool _IsBusy;
public bool IsBusy
{
get { return _IsBusy; }
set
{ …
Run Code Online (Sandbox Code Playgroud) 在BDD测试中,我正在比较日期.比较日期时以字符串形式.即使两个日期都相同,我也会收到此消息并且测试失败
预期对象为"01/20/2012 12:00:00 AM",但发现"1/20/2012 12:00:00 AM".
还有一件事就是在我的系统上发生这种情况.如果我要求其他开发人员进行测试,测试通过正常.我缺少某种类型的设置吗?
它的代码部分是
customer["DateOfBirth"].Should().Be(Helper.DateOfBirth.ToString());
Run Code Online (Sandbox Code Playgroud)
客户是哈希表的地方.这个特别声明在其他机器上通过OK但不在我的机器上.
我知道我可以通过更改日期比较而不是字符串比较来修复它.但我很好奇,因为这在其他机器上很好.
wpf ×7
mvvm-light ×6
mvvm ×5
c# ×2
wcf ×2
.net ×1
.net-4.5 ×1
data-binding ×1
debugging ×1
iis ×1
iis-7 ×1
memory ×1
memory-leaks ×1
mvvm-toolkit ×1
rest ×1
w3wp ×1
windows ×1
wpfdatagrid ×1
xaml ×1