我的方案包含:
FooBar使用EF 6 Code First,并包含许多模型和a DataContext.FooBarAsp使用Microsoft的Identity框架进行用户身份验证,并且有一个ApplicationDbContext.两种情境都很好,并按预期工作.Global.asax.cs应该执行MigrateDatabaseToLatestVersion(对吧?).FooBar.Tests应该执行DropCreateDatabaseAlways并且不关心迁移(对吗?).
我应该在FooBarAsp或FooBar中启用Flash吗?对于这两种情况?
在FooBar中运行EnableMigrations后(仅用于踢),我的__MigrationHistory表包含两个InitialCreate行,一个用ContextKey = FooBar.Models.DataContext,另一个用ContextKey = FooBarAsp.Models.ApplicationDbContext.所以他们都被跟踪了?如果是这样,(因为我没有启用自动迁移),我需要明确的运行都 MigrateDatabaseToLatestVersion<DataContext>和MigrateDatabaseToLatestVersion<ApplicationDbContext>在Global.asax.cs中?
为什么我不想ApplicationUser进入FooBar并合并ApplicationDbContext成DataContext?
ApplicationUserASP附带的库存是一个单独的实体(并且是分开的ApplicationDbContext,恰好指向同一个数据库).ASP ApplicationUser和身份框架负责身份验证,注册,电子邮件验证,登录,注销,密码,密码强度,密码重置,双因素身份验证,Cookie,会话,来自facebook/google等来源的外部登录.FooBar不会知道或关心任何这些.FooBar User有一个UserName,ASP ApplicationUser有一个UserName.当用户登录时,我只是User通过UserName 查找Foobar ,并且登录的是谁.所以当我创建一个新的Blog(其中Blog是FooBar实体)时,作者是FooBar User(不是ApplicationUser).最终结果是FooBar不是Web/Desktop/Console/iPhone/Android应用程序.它是一个库,任何这些东西都可以引用,交互并提供用户界面.关键是FooBar没有受到任何这些用户界面的污染或偏见.
所以我不想ApplicationUser进入FooBar,因为它来自Microsoft.AspNet.Identity命名空间,而FooBar不知道或不关心ASP.NET(或WPF或其他任何接口).
我已将WPFToolkit.Extended.dll添加到我的解决方案中,并将其Build Action设置为Embedded Resource.
在App.OnStartup(StartupEventArgs e)中,我有以下代码:
AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
{
String resourceName = "AssemblyLoadingAndReflection." + new AssemblyName(args.Name).Name + ".dll";
String assemblyName = Assembly.GetExecutingAssembly().FullName;
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName);
using (stream)
{
Byte[] assemblyData = new Byte[stream.Length];
stream.Read(assemblyData, 0, assemblyData.Length);
return Assembly.Load(assemblyData);
}
};
Run Code Online (Sandbox Code Playgroud)
调试器会两次触发此代码块.
第一次:
resourceName is "AssemblyLoadingAndReflection.StatusUtil.resources.dll"
assemblyName is "StatusUtil, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
stream is null
Run Code Online (Sandbox Code Playgroud)
第二次:
resourceName is "AssemblyLoadingAndReflection.WPFToolkit.Extended.resources.dll"
assemblyName is "StatusUtil, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
stream is null
Run Code Online (Sandbox Code Playgroud)
代码在遇到stream.Length时抛出异常,因为它为null.
我不能使用ILMerge,因为它是一个WPF项目.
我打印到装有8.5 x 8.5英寸纸张的冲击式打印机上.打印时,打印机弹出11英寸而不是8.5英寸.
PageMediaSize pageSize = new PageMediaSize(PageMediaSizeName.Unknown, element.Width, element.Height);
PrintDialog dialog = new PrintDialog();
dialog.PrintTicket.PageMediaSize = pageSize;
Console.WriteLine(dialog.PrintableAreaHeight); // 816, good!
dialog.PrintQueue = myQueue; // selected from a combobox
Console.WriteLine(dialog.PrintableAreaHeight); // 1056 :(
dialog.PrintVisual(element, description);
Run Code Online (Sandbox Code Playgroud)
使用" 如何在.NET中将Twips转换为像素? "我已经确定8.5英寸是816像素,这是我element.Width和我的大小element.Height.我正在设置一个新的PageMediaSize,但这似乎没有任何效果,dialog.PrintableAreaHeight当我在对话框上设置队列时仍然在1056结束.
如果是这样dialog.ShowDialog(),请手动选择我的打印机,并在我的打印机的高级设置中手动查找和更改纸张尺寸,然后dialog.PrintableAreaHeight正确反映更改.
此页面http://go4answers.webhost4life.com/Example/set-printdialogs-default-page-size-168976.aspx建议我只能设置PageMediaSize我的打印机支持.使用GetPrintCapabilities我的功能PrintQueue,我看到一个包含10个左右页面大小的列表,其中没有一个是8.5 x 8.5.这与我在Windows中进入打印机高级设置时看到的列表相同.
研究表明这是防止换行的一种方式,例如:
<Paragraph>
<TextBlock TextWrapping="NoWrap">unwrapping text</TextBlock>
</Paragraph>
Run Code Online (Sandbox Code Playgroud)
如何获得C#代码中的行为?
new Paragraph(new TextBlock()
{
Text = "unwrapping text",
TextWrapping = TextWrapping.NoWrap
});
Run Code Online (Sandbox Code Playgroud)
cannot convert from 'System.Windows.Controls.TextBlock' to 'System.Windows.Documents.Inline'之所以会产生收益,是因为Paragraph的构造函数期望使用Inline。
我似乎找不到一种将TextBlock转换为Inline以使Paragraph满意的方法。如果它在XAML中有效,那么应该在某处有一个转换器,对吗?我如何找到它?
我意识到FlowDocument的目的是要包装,流动和调整大小等。我正在写一些简单的报告,只是一些System.Windows.Documents.Table数据,不幸的是,包装的第一列是包含日期的,所以
2013-04-24
Run Code Online (Sandbox Code Playgroud)
成为
2013-04-
24
Run Code Online (Sandbox Code Playgroud)
Run到目前为止,我一直在使用s,尽管它们具有一些TextBlock属性,但它们不提供TextWrapping或提供任何东西TextTrimming。
我基本上是在回答这个问题AVCaptureVideoPreviewLayer方向 -除了在Swift中需要景观.
我的目标是iOS 8,而AVCaptureVideoPreviewLayer似乎没有setVideoOrientation功能.
我应该如何检测方向已更改,并正确旋转AVCaptureVideoPreviewLayer?
我使用了https://developers.google.com/apps-script/samples/automations/vacation-calendar上的“填充团队假期日历”示例来构建一个 Apps 脚本,以将所有外出事件拉入共享日历。该脚本几个月来一直运行良好。如果不对脚本进行任何更改,现在调用时Calendar.Events.import(event, TEAM_CALENDAR_ID);出现错误:
GoogleJsonResponseException:对 calendar.events.import 的 API 调用失败并出现错误:错误请求
我已经在调试器中运行了该脚本,并且该错误并没有提供任何有关错误实际内容的信息,除了 400 错误请求之外。还有很多与日期/时间格式相关的其他问答,但event我导入的变量来自之前的调用,Calendar.Events.list(...)因此它已经是 api 本身生成的 JS 事件对象。
这是一个最小的可重现示例:
let TEAM_CALENDAR_ID = '<calendar id goes here>';
function testImport() {
const now = new Date();
let user = Session.getActiveUser();
// Fetch next 10 events
let events = Calendar.Events.list(user.getEmail(), {
timeMin: now.toISOString(),
singleEvents: true,
orderBy: 'startTime',
maxResults: 10
});
if (events.items.length === 0) {
console.error('No events found');
return;
}
// Use next upcoming event for this user …Run Code Online (Sandbox Code Playgroud) google-calendar-api bad-request google-apps-script http-status-code-400
使用 Django 1.11 和 Django Rest Framework 3.7,我有一个 Person 模型
class Person(models.Model):
name = models.CharField(max_length=100)
email = models.EmailField()
age = models.PositiveSmallIntegerField()
Run Code Online (Sandbox Code Playgroud)
使用 PersonSerializer
class PersonSerializer(serializers.ModelSerializer):
class Meta:
model = Person
fields = ('id', 'name', 'age', 'email')
Run Code Online (Sandbox Code Playgroud)
和一个 ListCreate 视图
class PersonList(generics.ListCreateAPIView):
queryset = Person.objects.all()
serializer_class = PersonSerializer
Run Code Online (Sandbox Code Playgroud)
使用 HTTPie,我可以创建一个像这样的 Person:
$ http POST http://127.0.0.1:8000/api/people/ name=Alice age=26 email=alice@example.com
HTTP/1.0 201 Created
Allow: GET, POST, HEAD, OPTIONS
Content-Length: 60
Content-Type: application/json
Date: Sun, 10 Dec 2017 15:00:28 GMT
Server: WSGIServer/0.1 Python/2.7.11
Vary: …Run Code Online (Sandbox Code Playgroud) 我想这是设计的,但这是我的场景:如果保存一个没有父母的孩子,我想创建一个新的父母.
class Parent(models.Model):
pass
class Child(models.Model):
parent = models.ForeignKey(Parent, on_delete=models.PROTECT, related_name='children')
def save(self, *args, **kwargs):
if self.parent is None: # error happens here
self.parent = Parent.objects.create()
super().save(*args, **kwargs)
c = Child()
c.save()
# django.db.models.fields.related_descriptors.RelatedObjectDoesNotExist: Child has no parent.
Run Code Online (Sandbox Code Playgroud)
我在执行时得到了上面的RelatedObjectDoesNotExist if self.parent is None.我也试过if not self.parent,在同一行上同样的错误.我真的不想让父字段可以为空.只是读取self.parent的行为,甚至检查它是否为None,足以触发错误.
这是在Django 1.11,这里出现错误:https://github.com/django/django/blob/2b882a4bd954c8a6b1447f8fc0841a3352514c26/django/db/models/fields/related_descriptors.py#L193,所以如果我正在读这个对,只是通过阅读self.parent,我结束了__get__.
如果我不能检查它是否为"我怎么能"给它一个值,如果它是无"?
我认为这是一个相当标准的设置,有一个ListBox支持ObservableCollection.
我有一些工作要处理可能需要花费大量时间(超过几百毫秒)的Things,ObservableCollection所以我想将其卸载到Task(我本来也可以使用BackgroundWorker)以免冻结用户界面.
什么奇怪的是,当我CollectionViewSource.GetDefaultView(vm.Things).CurrentItem开始之前Task,一切正常,但是如果发生这种情况时的Task那么CurrentItem似乎总是指向的第一个元素ObservableCollection.
我已经制定了一个完整的工作示例.
XAML:
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<DockPanel>
<ToolBar DockPanel.Dock="Top">
<Button Content="Click Me Sync" Click="ButtonSync_Click" />
<Button Content="Click Me Async Good" Click="ButtonAsyncGood_Click" />
<Button Content="Click Me Async Bad" Click="ButtonAsyncBad_Click" />
</ToolBar>
<TextBlock DockPanel.Dock="Bottom" Text="{Binding Path=SelectedThing.Name}" />
<ListBox Name="listBox1" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding Path=Things}" SelectedItem="{Binding Path=SelectedThing}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Name}" />
</DataTemplate>
</ListBox.ItemTemplate> …Run Code Online (Sandbox Code Playgroud) 带Expander的典型ListView GroupStyle看起来大致如下:
<ListView.GroupStyle>
<GroupStyle>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Expander>
<Expander.Header>
<TextBlock Text="{Binding Path=Name}" />
</Expander.Header>
<Expander.Content>
<ItemsPresenter />
</Expander.Content>
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</ListView.GroupStyle>
Run Code Online (Sandbox Code Playgroud)
TextBlock绑定到Name,它似乎生成GroupItem对象的值,该对象的propertyName被传递到PropertyGroupDescription,后者被添加到ListCollectionView的GroupDescriptions集合(whew):
class MyClass
{
public int Id { get; set; }
public int FullName { get; set; }
public string GroupName { get; set; } // used to group MyClass objects
}
MyView.GroupDescriptions.Add(new PropertyGroupDescription("GroupName"));
Run Code Online (Sandbox Code Playgroud)
如何让ListView的组标题显示GroupName以外的属性?我要说的是GroupName对于将我的对象拆分成组是有用的,但不一定是我希望用于所述组的标题的名称.
看起来CloudBlob具有3个子类,您可以使用这些子类来将数据存储到Azure存储中或从中存储。这是(非常稀疏的)文档:
表示作为一组块上传的Blob。
表示一个附加Blob,这是一种Blob,其中数据块始终被提交到Blob的末尾。
代表Microsoft Azure页面Blob。
我一直在CloudBlockBlob上传/下载pdf和图像,并且似乎一切正常。我似乎找不到解释这些类的功能的页面。
在什么情况下我应该使用CloudAppendBlob和CloudPageBlob?
c# ×7
wpf ×5
django ×2
python ×2
.net ×1
asp.net ×1
azure ×1
bad-request ×1
dll ×1
dot-matrix ×1
embed ×1
flowdocument ×1
grouping ×1
include ×1
ios8 ×1
landscape ×1
orientation ×1
printing ×1
swift ×1
task ×1
validation ×1
word-wrap ×1
xaml ×1