Tag: 对象

获取动态对象中方法的generics调用类型

我开始使用.Net中的动态对象,我无法弄清楚如何做某事。 我有一个inheritance自DynamicObject的类,我重写了TryInvokeMember方法。 例如 class MyCustomDynamicClass : DynamicObject { public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result) { // I want to know here the type of the generic argument } } 在该方法中,我想知道调用中generics参数的类型(如果有的话)。 例如,如果我调用以下代码,我想在动态对象的覆盖方法中获取System.Boolean和System.Int32的值 dynamic myObject = new MyCustomDynamicClass(); myObject.SomeMethod(“arg”); myObject.SomeOtherMethod(“arg”); 目前,如果我在覆盖方法中放置一个断点,我可以得到被调用方法的名称(“SomeMethod”和“SomeOtherMethod”,以及参数的值,但不是generics类型)。 我怎样才能获得这些价值? 谢谢!

计算类的实例

可能重复: 我怎样才能知道在C#中创建了多少个对象? 是否有可能获得所选类的活动(已创建但尚未销毁)的实例数? 例如 public class MyClass { } c1 = new MyClass(); c2 = new MyClass(); count = GetActiveInstances(typeof(MyClass)) 应该返回2.如果GC破坏这些类中的任何一个,则为1或0。

如何从C#上的json读取数据

我有以下json对象,我传递给我的c#服务器 [ { “ID”: 1, “FirstName”: “Jay”, “LastName”: “Smith” }, { “ID”: 2, “FirstName”: “Rich”, “LastName”: “Son” }, { “ID”: 3, “FirstName”: “Emmy”, “LastName”: “Wat” } ] 我像这样创建一个类 public class Person { public int ID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } } 当我这样做 […]

使用数组字段而不是大量的对象

根据这篇文章 ,我想知道人们使用数组存储大量数据集(比如说> 10,000,000个对象)来存储数据字段而不是实例化数百万个对象并增加内存开销(例如,12-每个对象24个字节,具体取决于您阅读的文章)。 每个属性的数据因项目而异,因此我不能使用严格的Flyweight模式,但会设想类似的东西。 我对这种表示的想法是,有一个’模板对象’…… class Thing { double A; double B; int C; string D; } 然后是一个容器对象,其中包含一个根据请求创建对象的方法…… class ContainerOfThings { double[] ContainerA; double[] ContainerB; int[] ContainerC; string[] ContainerD; ContainerOfThings(int total) { //create arrays } IThing GetThingAtPosition(int position) { IThing thing = new Thing(); //probably best done as a factory instead thing.A = ContainerA[position]; thing.B […]

C#类/对象可视化软件

在Visual Studio 2005和之前,您可以将代码导出到Visio,并查看对象之间的关系以及它具有的方法,属性和字段。 这很棒,因为它允许你调整外观以改善外观。 在VS 2008中,该选项消失了,用类图系统替换(假设)。 它function齐全但不漂亮。 我正在寻找的是一些软件,它允许我以更漂亮的方式进行可视化,或者至少为我提供足够的选项来过滤,排列等等,以便我可以用其他东西来触摸它。

如何在C#中将Json转换为Object

我想在C#中将Json转换为Object。 Json这里是: [{ “值”: “e920ce0f-e3f5-4c6f-8e3d-d2fbc51990e4”}]。 如何使用Object。 问题似乎很愚蠢,但并不是那么愚蠢。 我没有简单的Json,我有IEnumerable,我从usint JsonResult得到json像这样: 新的JsonResult(来自于User.Claims中的c,其中(c.Type.Equals(“value”))选择新的{c.Value}); 这个linq代码不适用于JObject。 感谢Tommaso Belluzzo。

获取对ArrayList对象的访问权限

我正在开发一个应用程序来读取一些JSON数据并进行一些统计,但现在我遇到了一个问题。 我有一个像这样的字符串: { “position”:[ { “someKey1″:”someVal1”, “someKey2″:”someVal2”, }, { “someKey1″:”someVal3”, “someKey2″:”someVal4”, } } 我想访问someKeys和someValues。 我正在将它转换为这样的字典: Dictionary values = deserializeJSON(json_string); 编辑1:对不起,忘了添加deserializeJSON: private Dictionary deserializeJSON(string p_jsonObject) { JavaScriptSerializer serializer = new JavaScriptSerializer(); return serializer.Deserialize<Dictionary>(p_jsonObject); } 现在我无法使用键“position”访问值列表。 如果我尝试打印值[“位置”]的类型,我得到: System.Collections.ArrayList 所以我想我可以迭代这个,但我不能。 我尝试使用枚举器(在这里读取它可以迭代对象,并且我必须将它添加到ArrayList来强制转换): ArrayList arr = new ArrayList(); IEnumerable enumerable = values[“position”] as IEnumerable; foreach (object element in enumerable) { […]

在另一个类中使用一个类对象?

我在c#中创建应用程序。在该应用程序中,我有一个类作为DataCapture.cs 。 在同一个应用程序中,我有另一个类Listner.cs 。 在Listner.cs类中,我想使用DataCapture.cs对象而不创建DataCapture.cs新对象。 好像我正在创建DataCapture.cs新对象,我无法访问数据DataCapture.cs因为它创建了新的类实例,所有数据都丢失了,因为我在DataCapture.cs使用集合。请帮助我。 DataCapture.cs预先。

对象引用未设置为对象的实例 – webservices

我有这个错误出现在我的Web服务中,即使我看过有关null问题的文章,我也无法找到如何修复此错误 这是我的代码: SendInvUpdate.InvServices.UpdateRatePackagesRequest urq = new SendInvUpdate.InvServices.UpdateRatePackagesRequest(); SendInvUpdate.InvServices.UpdateRatePackagesOperationResponse ors = new SendInvUpdate.InvServices.UpdateRatePackagesOperationResponse(); protected void Page_Load(object sender, EventArgs e) { Int64 HID = 819942; Int64 HRID = 154482; SendInvUpdate.InvServices.UpdateRatePackagesRequest request = new SendInvUpdate.InvServices.UpdateRatePackagesRequest(); ChannelManagerAccount account = new ChannelManagerAccount(); request.HotelId = HID; int avail = 4; DateTime frodte = Convert.ToDateTime(“2012-04-12”); DateTime todte = Convert.ToDateTime(“2012-04-30”); int NoofRatePackages = […]

c#last insert id

我正在使用这个sql的存储过程: INSERT INTO [dbTblUsers]([strUsername], [strPassword]) VALUES (@p1,@p2); SELECT @@IDENTITY; 并调用该程序: // Insert new user nId = daUsers.InsertQuery(textBoxUsername.Text, textBoxPassword.Text); // Insert new Twitter OAuth daTwitterOAuth.Insert(nId, textBoxConsumerKey.Text, textBoxConsumerSecret.Text, textBoxToken.Text, textBoxTokenSecret.Text); 如何将对象@@ IDENTITY转换为int nId? 像这样? nId = (int)daUsers.InsertQuery(textBoxUsername.Text, textBoxPassword.Text);