考虑一下这个简单的msbuild脚本(xaml):
<Activity xmlns=[....]>
<Sequence>
<mtbwa:WriteBuildMessage Message="Test message"/>
<mtbwa:WriteBuildWarning Message="Test warning"/>
</Sequence>
</Activity>
Run Code Online (Sandbox Code Playgroud)
我有一个基于这个脚本的tfs构建定义.当我在tfs中排队新的构建时,警告显示在"查看日志"下,不显示该消息.
你对那个怎么想的?
xaml team-build visual-studio-2010 tfsbuild build-definition
我有一个ViewModel,它包含一个Team,它有一个Players属性,它是一个Player对象列表.在TeamView中,Team是深度加载的,因此播放器数据已经在内存中.
将给定的选定Player类实例传递给PlayerView的最佳方法是什么?
问题是MVVMCross ViewModel构造函数只能包含当前版本的字符串属性.
我有以下想法:
传递所选Player的Id并将Team.Players属性作为ViewModel分配给PlayerView.如果所选择的玩家只是PlayerView中的焦点玩家并且PlayerView实际上是"玩家"视图,那么这可以是合理的解决方案,其中用户也可以在其他团队玩家之间滑动.
有一个像ViewBag服务这样的ASP.Net MVC只能在导航动作之间传递数据,在类似存储的字典中,传递给PlayerView的参数是一个"viewbag:PlayerId123",它是一个指向类实例的特殊键.
将所选对象序列化为字符串,并将其作为序列化对象传递给构造函数.这是可能的,但我不喜欢这个解决方案.
我的应用程序在几个不同的设备上同步数据.因此,它将所有日期存储在UTC时区中,以考虑可能设置为不同时区的不同设备.
麻烦的是,当我读回日期并显示它们时,它们似乎是不正确的(大多数用户都在英国夏令时,所以他们落后一小时).
<TextBlock Margin="5" Style="{StaticResource SmallTextblockStyle}">
<Run Text="Last Updated:" />
<Run Text="{Binding Path=Submitted}" />
</TextBlock>
Run Code Online (Sandbox Code Playgroud)
我是否需要手动覆盖UI线程的set CurrentCulture属性?我知道我必须在Silverlight中这样做.
我们在不同的程序集中有Views和ViewModel.视图的程序集具有对VM的引用.(有时我们需要代码).
ViewModel的DataContext是在代码中设置的,而不是在XAML中.因此,VS和Resharper都不能提供帮助,因为intellisense和Resharper也提供了很多警告.
是否有任何针对Resharper的指令我们可以在XAML注释中设置我们打算将View与VM一起使用?
更新:
不错的博客文章作为接受的答案的补充.
由于我的用户界面通常需要具有本地化字符串,因此我的视图模型提供了视图所使用的所有字符串.这包括按钮上的标题等内容.
在iOS端,按钮标题通过SetTitle方法设置.
为了使视图模型string =>按钮标题映射起作用,MvvmCross会进行一些神奇的绑定转换,以使其正常工作.
假设我的视图中有一个名为Foo的UIButton,我想将其标题映射到View Model中的属性ButtonLabel.知道以下工作以设置这样的绑定:
this.AddBindings(new Dictionary<object, string>() {
{Foo, "Title ButtonTitle"}
});
Run Code Online (Sandbox Code Playgroud)
可以使用MvvmCross中的Fluent Binding系统设置相同的绑定吗?我一直在阅读MvvmCross源代码,但我并没有得到绑定代码.
以下内容不起作用(因为实际上按钮没有Title属性 - 它有一个SetTitle方法):
var set = this.CreateBindingSet<FooView, FooViewModel>();
set.Bind(Foo).For(b => b.Title).To(vm => vm.ButtonTitle);
set.Apply();
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以使用Fluent Bindings获得所需的结果?
在Hangfire中,我已经成功设置了定期作业,并且如果我愿意,我可以手动触发,这要归功于Web UI及其"触发器"按钮.
RecurringJob.AddOrUpdate(..);
Run Code Online (Sandbox Code Playgroud)
但是我愿意设置一个永远不会自动解雇的工作.仅限WebUi的需求.将其视为一组仅在需要时触发的维护任务.手动.
我想在await状态中添加一个非重新安排的Job,但是无法(听起来不对).
Hangfire可以"仅按需"工作吗?
我们有现有的具有多个表名的数据库.例如Documents.我想使用新的EF Core和Asp.Net Core基于这篇文章与数据库的第一种方法在这里
我运行以下命令从现有数据库创建模型
Scaffold-DbContext"Server =(local); Database = MyDatabase; Trusted_Connection = True;"Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
但是,当我运行scaffolding命令时,它会创建具有多个名称的模型.例如,Documents表转换为模型名称Documents.
如何更改它以便它可以使用模型的单一命名约定?(我不能改变数据库中的表名)
请注意,我已经阅读了与相同问题相关的SO上的一些帖子,但他们主要关注代码第一种方法.我正在使用数据库第一种方法.
在新的System.Text.Json中;命名空间是否有类似 IContractResolver 的东西我正在尝试将我的项目从 Newtonsoft 迁移出去。
这是我试图移动的课程之一:
public class SelectiveSerializer : DefaultContractResolver
{
private readonly string[] fields;
public SelectiveSerializer(string fields)
{
var fieldColl = fields.Split(',');
this.fields = fieldColl
.Select(f => f.ToLower().Trim())
.ToArray();
}
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
{
var property = base.CreateProperty(member, memberSerialization);
property.ShouldSerialize = o => fields.Contains(member.Name.ToLower());
return property;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用 .net core 3.1 和 EF core 创建一个小型 API。
我尝试在我的存储库类中使用 IAsyncEnumerable 但出现错误。
我知道错误是有效的,但有人可以告诉我如何在存储库类中使用 IAsyncEnumerable 吗?
状态库.cs
public class StateRepository : IStateRepository
{
public StateRepository(AssetDbContext dbContext)
: base(dbContext)
{
}
public async Task<State> GetStateByIdAsync(Guid id)
=> await _dbContext.States
.Include(s => s.Country)
.FirstOrDefaultAsync(s => s.StateId == id);
public async IAsyncEnumerable<State> GetStates()
{
// Error says:
//cannot return a value from iterator.
//Use the yield return statement to return a value, or yield break to end the iteration
return await _dbContext.States
.Include(s => …Run Code Online (Sandbox Code Playgroud) 几天前我开始学习 .net core,作为开始,我创建了一个带有内置 angular 8 模板的 .netcore 项目。
它有几个用 angular 构建的页面,比如计数器和获取数据等,但所有与身份相关的页面(登录、注册等)都是来自后端的纯 HTML。所以“我主要关注的是在该页面中进行一些 UI 更改”。
我发现身份已添加到类库中,因此在后端代码中不可见。为了对其进行更改,我需要首先通过脚手架重新生成将其添加到代码中。这将覆盖以前的库代码,并且可以根据需要进行修改。
所以我选择添加新的脚手架项目 --> 身份。并在第一次尝试中选择“覆盖所有文件”,仅在第二次尝试中选择“帐户\登录”和“帐户\注册”,并为 dbcontext 选择 applicationdbcontext。但不幸的是,它们都不适合我。
当我尝试构建代码时出现此错误
Error CS0246 The type or namespace name 'IWebHostEnvironment' could not be found (are you missing a using directive or an assembly reference?)
C:\Users\MyUserName\source\repos\MyProjectName\obj\Debug\netcoreapp3.0\Razor\Pages\Shared\_Layout.cshtml.g.cs 448
Run Code Online (Sandbox Code Playgroud)
我真的不知道 .g.cs 扩展名是什么,该页面上没有 import 语句和一些我以前从未见过的奇怪代码。页面本身也没有显示任何错误/红色标记。
我基本上想在这里实现两件事,
1) 完全使用 .net 核心应用程序作为 API,我想为所有与登录相关的东西在 angular 本身中构建 UI,而不是从后端获取 HTML。
2)在用户登录表单中添加更多字段。并且由于它是代码优先的方法,因此最终会在用户 DBSet 中进行更改(在这种情况下我不知道该怎么做)。
我没有添加任何代码示例,因为它是一种直接的问题/问题。要重现该问题,只需在 .net core 3.0 中创建一个项目并采用 angular 8 模板。现在尝试在登录或注册页面上进行任何与 UI 相关的更改。
c# identityserver4 asp.net-core-webapi asp.net-core-3.0 angular8
c# ×9
asp.net-core ×2
mvvmcross ×2
xamarin.ios ×2
xaml ×2
.net-core ×1
angular8 ×1
c#-8.0 ×1
ef-core-3.1 ×1
hangfire ×1
localization ×1
mvvm ×1
resharper ×1
team-build ×1
tfsbuild ×1
wpf ×1