创建表时是否有可用的属性?我试过[StringLength]
但似乎被忽略了.
public class EntityRegister
{
public int Id { get; set; }
[StringLength(450)]
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud) .net c# entity-framework system.componentmodel entity-framework-5
我很想知道IComponent,IContainer和ISite的用途.我已经阅读了文档,但它非常模糊(或者我认为它太难了).我知道如果我创建一个类作为组件,它可以在Visual Studio设计器中使用.但我真的想更全面地了解:组件/容器模式实现了什么,它能让我的生活变得更轻松吗?
IEditableObject和IRevertibleChangeTracking(来自System.ComponentModel命名空间)有什么区别?看起来好像第一个支持显式事务而第二个支持更隐式 - 但最终结果是相同的.我应该如何在代码中实现它?目前我在BeginEdit中什么都不做,并分别在EndEdit和CancelEdit中调用RejectChanges和AcceptChanges.我的问题是,这也将接受在BeginEdit之前所做的更改.
这真的是微软想要的,还是我试图实现两个互斥的接口?
什么是AggregateCatalog
?你构建一个new AggregateCatalog()
什么意思?将程序集添加到目录中意味着什么,例如catalog.Catalogs.Add(new AssemblyCatalog(someAssembly))
?除了程序集,您可以添加到目录中吗?任何与此相关的一般知识也会有所帮助(我是一个总菜鸟)
是否有任何数据绑定允许之间的绑定框架(BCL或其他方式)的任何两个CLR性能实现INotifyPropertyChanged
和INotifyCollectionChanged
?似乎应该可以做这样的事情:
var binding = new Binding();
binding.Source = someSourceObject;
binding.SourcePath = "Customer.Name";
binding.Target = someTargetObject;
binding.TargetPath = "Client.Name";
BindingManager.Bind(binding);
Run Code Online (Sandbox Code Playgroud)
在哪里someSourceObject
和someTargetObject
只是实施的POCO INotifyPropertyChanged
.但是,我没有意识到BCL对此有任何支持,并且不确定是否存在允许这样做的现有框架.
更新:鉴于没有现有的库,我已经自己写了自己的库.它可以在这里找到.
谢谢
有人可以解释我们应该使用的时间和原因System.ComponentModel.Container
吗?最近我在这里遇到了这个课程的使用,但是真的无法理解这个课程有什么好处.
有关于使用IContainer和ISite的各种在线文档(例如http://www.theserverside.net/tt/blogs/showblog.tss?id=pluginArchitectures),周围有一些模糊的例子,但我没有遇到过实际有用的实例(除了winforms).我真的不知道它究竟可以用于什么,这没有任何帮助.有没有人在自己的代码中使用.NET容器接口和相应的类,独立于winforms,你是如何使用它们的?
尝试使用ComponentSerializationService反序列化时,会填充未找到引用的错误:
public ICollection Deserialize(object serializationData)
{
var serializationStore = serializationData as SerializationStore;
var componentSerializationService = _serviceProvider.GetService(typeof(ComponentSerializationService)) as ComponentSerializationService;
var collection = componentSerializationService.Deserialize(serializationStore);
}
Run Code Online (Sandbox Code Playgroud)
错误如:
找不到类型'System.Drawing.Size'.请确保引用包含此类型的程序集.如果此类型是开发项目的一部分,请确保使用当前平台或任何CPU的设置成功构建项目.
在这里,我通过了Button控件并设置了size属性.
我想为对象的属性添加一些自定义的以PropertyGrid为中心的属性,以提供更丰富的编辑,隐藏一些值并将它们分类,因为我正在使用的那个类不提供这样的功能而且我什么也做不了关于它.
真的,这是MS的应用程序设置生成代码,所以你不能以任何方式扩展它的属性.请参阅我的另一个问题:运行时AppSettings.settings编辑器对话框
首先请注意,此问题未标记为winforms或wpf或其他任何GUI特定的.这是故意的,你很快就会看到.
第二,对不起,如果这个问题有点长.我尝试将各种各样的信息汇集在一起,以便提供有价值的信息.然而,我的问题正好在"我想知道的事情"之下.
我的任务是最终了解.NET提供的在特定线程上调用委托的各种方法.
我正在寻找最通用的方法(不是Winforms或WPF特定的)来调用特定线程上的委托.
或者,换句话说:我会感兴趣的是,以及如何做各种各样的方式(例如通过WPF Dispatcher
)相互利用; 也就是说,如果所有其他人都使用了一种用于跨线程委托调用的通用机制.
有很多与此主题相关的课程; 其中:
SynchronizationContext
(in System.Threading
)
如果我不得不猜测,那将是最基本的一个; 虽然我不明白它到底是做什么,也不知道它是如何使用的.
AsyncOperation
&(in )
这些似乎是包装.不知道如何使用它们.AsyncOperationManager
System.ComponentModel
SynchronizationContext
WindowsFormsSynchronizationContext
(in System.Windows.Forms
)
的子类SynchronizationContext
.
ISynchronizeInvoke
(in System.ComponentModel
)
由Windows窗体使用.(Control
该类实现了这个.如果我不得不猜测,我会说这个实现可以使用WindowsFormsSynchronizationContext
.)
Dispatcher
&(in )
似乎后者是另一个子类,前者代表它.DispatcherSynchronizationContext
System.Windows.Threading
SynchronizationContext
有些线程有自己的消息循环,还有消息队列.
(MSDN页面关于消息和消息队列有一些介绍消息循环如何在系统级工作的背景信息,即消息队列作为Windows API.)
我可以看到如何为具有消息队列的线程实现跨线程调用.使用Windows API,您可以将消息放入特定线程的消息队列PostThreadMessage
,其中包含调用某个委托的指令.消息循环 - 在该线程上运行 - 最终将到达该消息,并且将调用该委托.
根据我在MSDN上阅读的内容,线程不会自动拥有自己的消息队列.消息队列将变为可用,例如当线程创建窗口时.没有消息队列,线程没有消息循环是没有意义的.
那么,当目标线程没有消息循环时,是否可以进行跨线程委托调用?比方说,在.NET控制台应用程序中?(从这个问题的答案来看,我认为控制台应用确实不可能.)
.net winapi multithreading system.componentmodel synchronizationcontext
.net ×8
c# ×8
architecture ×1
catalog ×1
codedom ×1
containers ×1
data-binding ×1
mef ×1
poco ×1
propertygrid ×1
vb.net ×1
winapi ×1