小编Tho*_*que的帖子

ArgumentOutOfRangeException:索引超出范围

每当我使用PersitenceSpecification类来验证具有对值对象的引用的实体时,我就会得到这个奇怪的ArgumentOutOfRangeException.

    public class CatalogItem : DomainEntity
    {
        internal virtual Manufacturer Manufacturer { get; private
set; }
        internal virtual String Name { get; private set; }

        protected CatalogItem()
        {}

        public CatalogItem(String name, String manufacturer)
        {
            Name = name;
            Manufacturer = new Manufacturer(manufacturer);
        }
    }

    public class CatalogItemMapping : ClassMap<CatalogItem>
    {
        public CatalogItemMapping()
        {
            Id(catalogItem => catalogItem.Id);

            Component<Manufacturer>(category => category.Manufacturer,
                                    m => m.Map(manufacturer =>
manufacturer.Name));

            Map(catalogItem => catalogItem.Name);
            Map(Reveal.Property<CatalogItem>("Price"));
        }
    }

    [TestFixture]
    public class When_verifying_the_class_mapping_of_a_catalog_item
        : NHibernateSpecification
    {
        [Test]
        public void Then_a_catalog_object_should_be_persistable() …
Run Code Online (Sandbox Code Playgroud)

nhibernate fluent-nhibernate

5
推荐指数
1
解决办法
1万
查看次数

WPF - 从ItemsSource中删除项目的最佳方法

我正在编写一个自定义ItemsControl(标签式文档容器),当用户关闭它时,每个项目(选项卡)都可以从UI中删除.但是,我不能直接从ItemsControl.Items集合中删除它,因为这些项可以是数据绑定.所以,我必须从删除它ItemsSource,它可以是任何东西(ICollection,DataTable,DataSourceProvider...).

在我的应用程序的上下文中,我知道它的实际类型是什么ItemsSource,但我希望该控件更通用,以便我可以在以后重用它.

所以我正在寻找一种从数据源中删除项目的方法,而不知道它的类型.我可以使用反射,但感觉很脏......到目前为止,我想出的最佳解决方案是使用dynamic:

    internal void CloseTab(TabDocumentContainerItem tabDocumentContainerItem)
    {
        // TODO prompt user for confirmation (CancelEventHandler ?)

        var item = ItemContainerGenerator.ItemFromContainer(tabDocumentContainerItem);

        // TODO find a better way...
        try
        {
            dynamic items = ItemsSource;
            dynamic it = item;
            items.Remove(it);
        }
        catch(RuntimeBinderException ex)
        {
            Trace.TraceError("Oops... " + ex.ToString());
        }
    }
Run Code Online (Sandbox Code Playgroud)

但我对此并不满意,我相信一定有更好的方法.任何建议,将不胜感激 !

wpf itemscontrol itemssource

5
推荐指数
2
解决办法
2万
查看次数

当我的代码都没有显示在堆栈中时,如何调试此错误?

有时我的应用程序中出现以下错误:

无法使用与其父级Freezable属于不同线程的DependencyObject

我知道如何解决这种错误,但是在那种情况下,我不知道它在哪里发生,所以我不知道要解决什么...异常的堆栈跟踪仅包含.NET Framework代码,而不包含我的代码(除了Main方法):

   at System.Windows.Freezable.EnsureConsistentDispatchers(DependencyObject owner, DependencyObject child)
   at System.Windows.Freezable.OnFreezablePropertyChanged(DependencyObject oldValue, DependencyObject newValue, DependencyProperty property)
   at System.Windows.Freezable.OnFreezablePropertyChanged(DependencyObject oldValue, DependencyObject newValue)
   at System.Windows.Media.RenderData.PropagateChangedHandler(EventHandler handler, Boolean adding)
   at System.Windows.UIElement.RenderClose(IDrawingContent newContent)
   at System.Windows.Media.VisualDrawingContext.CloseCore(RenderData renderData)
   at System.Windows.Media.RenderDataDrawingContext.DisposeCore()
   at System.Windows.Media.DrawingContext.System.IDisposable.Dispose()
   at System.Windows.Media.RenderDataDrawingContext.Close()
   at System.Windows.UIElement.Arrange(Rect finalRect)
   at MS.Internal.Helper.ArrangeElementWithSingleChild(UIElement element, Size arrangeSize)
   at System.Windows.Controls.ContentPresenter.ArrangeOverride(Size arrangeSize)
   at System.Windows.FrameworkElement.ArrangeCore(Rect finalRect)
   at System.Windows.UIElement.Arrange(Rect finalRect)
   at System.Windows.Controls.WrapPanel.arrangeLine(Double v, Double lineV, Int32 start, Int32 end, Boolean useItemU, Double itemU)
   at System.Windows.Controls.WrapPanel.ArrangeOverride(Size finalSize)
   at System.Windows.FrameworkElement.ArrangeCore(Rect finalRect)
   at System.Windows.UIElement.Arrange(Rect finalRect)
   at …
Run Code Online (Sandbox Code Playgroud)

.net wpf multithreading freezable

5
推荐指数
1
解决办法
1483
查看次数

XmlSerializer InvalidOperationExc - 转换类型的已知问题

我对 XSD.EXE 生成的类使用 XmlSerializer。

XmlSerializer serializer = new XmlSerializer(obj.GetType());
Run Code Online (Sandbox Code Playgroud)

呕吐

InvalidOperationException无法生成临时类 (result=1)。错误 CS0030:无法将类型“itemOrderItemsItem[]”转换为“itemOrderItemsItem”错误 CS0029:无法将类型“itemOrderItemsItem”隐式转换为“itemOrderItemsItem[]”

修复(标记为<!--fix...-->下图)说一些愚蠢的元素添加到我的架构,但是这是行不通的。此修复程序已有五年历史。有解决方案吗?

              <xs:sequence>
              <xs:element name="item" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="model" type="xs:string" minOccurs="0" />
                    <xs:element name="description" type="xs:string" minOccurs="0" />
                    <xs:element name="material" type="xs:string" minOccurs="0" />
                    <xs:element name="lot" type="xs:string" minOccurs="0" />
                    <xs:element name="serial" type="xs:string" minOccurs="0" />
                    <xs:element name="transferQty" type="xs:string" minOccurs="0" />
                    <xs:element name="shipQty" type="xs:string" minOccurs="0" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>     
            </xs:sequence>
       <xs:attribute name="tmp" type="xs:string" /><!--fix...-->
Run Code Online (Sandbox Code Playgroud)

c# xml-serialization xsd.exe

5
推荐指数
1
解决办法
2693
查看次数

展平嵌套对象以将其属性映射到目标对象

我正在尝试使用 AutoMapper 来映射这样的类:

class FooDTO
{
    public int X { get; set; }
    public EmbeddedDTO Embedded { get; set; }
    public class EmbeddedDTO
    {
        public BarDTO Y { get; set; }
        public BazDTO Z { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

对于这样的类:

class Foo
{
    public int X { get; set; }
    public Bar Y { get; set; }
    public Baz Z { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

FooDTOHAL资源)

我知道我可以通过像这样显式创建地图来做到这一点:

Mapper.CreateMap<FooDTO, Foo>()
      .ForMember(f => f.Y, c => c.MapFrom(f …
Run Code Online (Sandbox Code Playgroud)

c# hal automapper object-object-mapping

5
推荐指数
1
解决办法
2960
查看次数

richtextbox SelectionColor 和 SelectionBackColor 属性

我想选择特定的文本行并用蓝色突出显示它,并且我希望该文本的前色为白色。我试过

 this.Select(start, length);
 this.SelectionBackColor = Color.Blue;
 this.SelectionColor = Color.White;
Run Code Online (Sandbox Code Playgroud)

但它不起作用。怎么了?我想模拟当我们通过鼠标选择一些文本时得到的效果,它的背景色变为浅蓝色,内部文本变为白色。我只要这样做就可以得到它

 this.Select(start, length);
Run Code Online (Sandbox Code Playgroud)

但一旦它失去焦点,选择就会消失,我希望它永久存在。

c# richtextbox winforms

4
推荐指数
1
解决办法
7764
查看次数

在方法调用上生成编译错误的属性?

我想确保一个方法(在我的情况下实际上是一个构造函数)永远不会从代码中显式调用.它应该只在运行时通过反射调用.为此,我想在方法上应用一个属性,如果调用该方法会产生编译器错误,如:

[NotCallable("This method mustn't be called from code")]
public void MyMethod()
{
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以将该方法设为私有,但在这种情况下,我无法通过部分信任上下文中的反射来调用它...

为了完整起见,这里有更多关于我为什么需要这样做的细节:

我正在实施一个可重用的Singleton<T>课程,基于Jon Skeet的文章.到目前为止,这是我的代码:

public static class Singleton<T>
{
    public static T Instance
    {
        get
        {
            return LazyInitializer._instance;
        }
    }

    private class LazyInitializer
    {
        // Explicit static constructor to tell C# compiler
        // not to mark type as beforefieldinit
        static LazyInitializer()
        {
            Debug.WriteLine(string.Format("Initializing singleton instance of type '{0}'", typeof(T).FullName));
        }

        internal static readonly T _instance = (T)Activator.CreateInstance(typeof(T), true);
    }
}
Run Code Online (Sandbox Code Playgroud)

(注意我使用的方法创建T实例Activator.CreateInstance) …

c# attributes compilation

4
推荐指数
1
解决办法
1830
查看次数

在WPF中如何在枚举的情况下定义数据模板?

我将Enum定义为Type

public Enum **Type**
{
   OneType,
   TwoType,
   ThreeType
};
Run Code Online (Sandbox Code Playgroud)

现在,我将Type绑定到Ribbon控件中的下拉功能区控件下拉菜单,该控件显示带有相应Image的MenuName的每个菜单.

(我正在使用Syncfusion Ribbon Control).

我希望像(OneType)这样的每个枚举类型都定义了具有菜单名称和腐蚀图像的数据模板.

如何定义枚举的数据模板?

如果可能,请建议我的解决方案!

请告诉我,如果不可能,或者我在想错误的方向!

data-binding wpf enums xaml

4
推荐指数
2
解决办法
7068
查看次数

C#Array方法帮助

有人可以告诉我如何以更好,更优雅的方式重写下面的方法吗?

// in class------------------

    public static void RefreshAllDropdownlists(DropDownList ddlRemoveUsersFromRole, DropDownList ddlAddUsersToRole, DropDownList ddlAddAllUsersToRole, DropDownList ddlRemoveAllUsersFromRole, DropDownList ddlDeleteAllUsersFromRole)
    {
        ddlRemoveUsersFromRole.ClearSelection();
        ddlAddUsersToRole.ClearSelection();
        ddlAddAllUsersToRole.ClearSelection();
        ddlRemoveAllUsersFromRole.ClearSelection();
        ddlDeleteAllUsersFromRole.ClearSelection();
    }

// in codebehind------------------

UserGvUtil.RefreshAllDropdownlists(ddlRemoveUsersFromRole, ddlAddUsersToRole, ddlAddAllUsersToRole, ddlRemoveAllUsersFromRole, ddlDeleteAllUsersFromRole);
Run Code Online (Sandbox Code Playgroud)

谢谢!

c# methods

4
推荐指数
1
解决办法
425
查看次数

UserManager&lt;XYZ&gt;”不包含“CreateIdentityAsync”的定义并且没有可访问的扩展方法

我正在使用 asp.net mvc core 2.1 版本,在 ApplicationUser 类中添加属性时收到这两个错误,并且在这段代码上收到错误:

 var userIdentity = await manager.CreateIdentityAsync(this,DefaultAuthenticationTypes.ApplicationCookie);
Run Code Online (Sandbox Code Playgroud)

我正在尝试修复过去 3 天的错误:

“UserManager”不包含“CreateIdentityAsync”的定义,并且找不到接受“UserManager”类型的第一个参数的可访问扩展方法“CreateIdentityAsync”(您是否缺少 using 指令或程序集引用?)

“名称‘DefaultAuthenticationTypes’在当前上下文中不存在”

我的班级如下

 public class ApplicationUser:IdentityUser
    {


       public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
        {
            var userIdentity = await manager.CreateIdentityAsync(this,DefaultAuthenticationTypes.ApplicationCookie);
            return userIdentity;
        }

        public string FullName { set; get; }

        public string MobileNumber { get; set; }

        public int CountryId { get; set; }

        public int StateId { get; set; }

        public int CityId { set; get; }

        public string Address { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-identity asp.net-core-mvc asp.net-core

4
推荐指数
1
解决办法
3469
查看次数