我有一个用C#编写的*.dll,我需要获取该*.dll中包含的所有公共(public)方法或类的列表。有什么方法可以用C#以编程方式完成吗? 最佳答案 是使用Assembly.GetTypes提取所有类型,然后对每种类型使用反射来迭代公共(public)方法。Assemblya=Assembly.LoadWithPartialName("...");Type[]types=a.GetTypes();foreach(Typetypeintypes){if(!type.IsPublic){continue;}MemberInfo[]me
我尝试在SO中搜索答案并偶然发现了类似的问题,但我无法使用它们来解决我的问题,因此请尽量不要将其标记为重复。让我们继续进行真正的交易:我有一个用于标准化EntityFramework数据库优先模型的通用库。这些是我创建的通用类:publicabstractclassGenericLookupModel:IActive,ICreated,IModified,IIdentity,IStringValue{publicboolis_active{get;set;}publicstringvalue{get;set;}publicstringdescription{get;set;}publi
我们的源代码中有一个通用组件,它包含一个非常大的应用程序的所有枚举(大约300个!)。有没有什么方法可以使用C#或VB.NET遍历所有这些对象以便对每个对象执行一个操作?问题Howtoiterateall“publicstring”propertiesina.netclass几乎是相关的,但我正在处理的枚举是多种类型的混合 最佳答案 类似的东西?varquery=Assembly.GetExecutingAssembly().GetTypes().Where(t=>t.IsEnum&&t.IsPublic);foreach(Type
我正在为一个应用程序实现按键导航,我想在组合框获得焦点时覆盖空格键功能,使其像回车键一样;像这样:if(!cb.IsDropDownOpen){cb.IsDropDownOpen=true;}else{cb.SelectedItem=cb.{non-publicmemberHighlightedItem};cb.IsDropDownOpen=false;}问题是我需要获取该非公共(public)成员的值,以便我可以设置所选值并关闭下拉列表(输入通常如何工作)。现在的问题是:实现此目标最快且最轻松的方法是什么? 最佳答案 这是我用于执
Typet=typeof(T);t.GetProperty("Company")如果我写下面的代码,它会返回nullTypet=typeof(T);t.GetProperty("company",BindingFlags.IgnoreCase)与此同时,如果我写这个工作正常。为什么会这样?Typet=typeof(T);t.GetProperty("company",BindingFlags.IgnoreCase|BindingFlags.Public|BindingFlags.Instance) 最佳答案 不采用BindingFl
sealedclassPI{publicstaticfloatnumber;staticPI(){number=3.141592653F;}staticpublicfloatval(){returnnumber;}}publicstatic和staticpublic有什么区别?它们可以按任何顺序使用吗?我将如何使用staticpublicfloatval()?类一初始化就执行吗? 最佳答案 没有区别。您可以按任一顺序随意指定它们。但是,我发现大多数开发人员倾向于使用publicstatic而不是staticpublic。
如果我只保留声明为“内部”的类中的“protected”、“内部”和“私有(private)”成员(字段、方法、属性、事件),会不会更具体和合适?我在各种代码中看到过这种做法(在“内部”类中有“公共(public)”成员)所以只是想知道这是一种不好的做法还是有一些好处或优势。[只关注C#]感谢您的关注。 最佳答案 不一定。如果您想隐式实现一个接口(interface),那么公共(public)成员是完全可以接受的。但一般来说,如果类是内部类,则公共(public)成员没有多大意义。您不会受到伤害,因为您将无法在定义它的模块之外以强类
可能吗?您可以将任何内容的访问权限更改为其他任何内容吗? 最佳答案 不可以,您可以在子类中使用私有(private)方法隐藏公共(public)成员,但不能在子类中使用私有(private)方法覆盖公共(public)成员。而且,实际上,这不仅仅是公共(public)/私有(private)的事情,这通常适用于缩小访问范围。修订:通过使用更严格的访问权限隐藏-在本例中为私有(private)访问权限-您将仍然看到来自基类或子类的基类成员引用,但它会在新访问级别可用时遵从新方法。所以一般来说,当您隐藏时,隐藏在其访问级别可见时优先。否
我有一个具有一些公共(public)属性的用户控件,其中一个是我设置[Browseable(false)]的对象。当我在VisualStudio的设计器中添加此控件时,生成的代码会将此对象设置为null。publicclassFoo:System.Windows.Forms.UserControl{[Browsable(false)]publicobjectBar{get;set;}[Browsable(true)]publicboolIsSomething{get;set;}...}privatevoidInitializeComponent(){...this.foo=newFoo
当我尝试使用以下静态函数时出现错误。错误:Expectedclass,delegate,enum,interface,orstruct函数(和类):namespaceMyNamespace{publicclassMyClass{//SomeotherstaticmethodsthatuseClasses,delegates,enums,interfaces,orstructspublicstaticstringMyFunc(stringmyVar){stringmyText=myVar;//DosomestuffwithmyTextandmyVarreturnmyText;}}}这导致