分享免费的编程资源和教程

网站首页 > 技术教程 正文

02DotNet 之DotNetClass介绍 dotnetskin

goqiw 2024-10-19 06:10:49 技术教程 9 ℃ 0 评论

在3dsmax中,通过封装系统DotNet System::Type得到dotNetClass ,我们可以通过反射得到

dotNetClass 类的相关方法属性和字段,在一般高级语言反射是个非常实用的特性很多程序集的内容都可以通过特性访问到,为了能够在maxscript里面使用,max也使用反射这一技术。

一个类无非就是由成员构成包括属性、字段、方法,构造器,索引器等构成

01介绍在maxscript里面怎么实例化dotnetclass对象

在maxscript里面有专门的构造器生成对象,而不是new的方式生成

dotNetClass {<dotNetObject> | <dotNetControl> | <class_type_string>}--文档的构造器格式

--在3dsmax侦听器里面输入:
theClass = dotNetClass "System.Drawing.Size"
--得到结果:dotNetClass:System.Drawing.Size
             
             
 --再来一个例子,输入如下:
dotNetClass "System.Windows.Forms.MonthCalendar, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

在.net平台,c#文件内容结构一般是工程.>项目>namespace>class>members,,多个namespace 一旦被引用集聚在一起可以组成程序集,也就是assembly,相当于将程序放在一个文件夹里面,因此我们可以通过创建文件夹,然后里面放入想要的程序,方便使用这些程序,例如:

assembly = dotNetClass "System.Reflection.Assembly"--创建了一个dotNetClass的程序集
r = assembly.loadfrom "F:\\FlashTrackBar\\bin\\Debug\\FlashTrackBar.dll"--程序集内容加载的路径

特别说明:

A一般的程序集会以.dll为后缀的文件形式存在,dll是CLR下的逻辑功能单元,方便 .NET 公共语言运行库 (CLR) 控制之下运行使用。

B程序集Assemblies 一旦加载就不能卸载。


02 Dotnetclass的方法

获得属性的值方法

--方法格式:getProperty <dotNetClass> <prop name> [asDotNetObject:<bool>]

o = dotNetClass "System.String"--创建string类型的类
-- o has only one property, .Empty:
prop = getProperty o "Empty"--获得string类型的类型属性为空的值,因为string类型的类型属性本来就是空的
 D=dotNetClass "System.Double" --创建double类型的类型对象
 prop=getProperty  D  #MaxValue
 --计算结果返回Double的最大值:1.79769d+308
 

获得dotnetclass的对象属性的名字方法

--方法格式:getPropNames <dotNetClass> [showStaticOnly:<bool>] [declaredOnTypeOnly:<bool>]

[showStaticOnly:<bool>]:在maxscript文档中方括号”[ ]“里面的内容表示是选填的可以不填,此处就是选填内容,表示填入的如果是true那么就只展示静态属性的名字,false表示全部属性展示

[declaredOnTypeOnly:<bool>]:表示展示显示类的属性,不展示隐藏或者子类的属性

D=dotNetClass "System.Double" --创建double类型的类型对象
getPropNames  D--获得dotnetclass类的对象的属性名字
--计算结果返回一个数组:#(#epsilon, #MaxValue, #MinValue, #NaN, #NegativeInfinity, #PositiveInfinity)

展示DotNetClass的对象的属性,这次不是属性的值和名字哦

--方法格式:showProperties <dotNetClass> ["prop_pat"] [to:<stream>] [showStaticOnly:<bool>] [showMethods:<bool>] [showAttributes:<bool>] [declaredOnTypeOnly:<bool>]

D=dotNetClass "System.Double" --创建double类型的类型对象
showProperties D--获取属性
以下是返回结果:
  .Epsilon : <System.Double>, read-only, static
  .MaxValue : <System.Double>, read-only, static
  .MinValue : <System.Double>, read-only, static
  .NaN : <System.Double>, read-only, static
  .NegativeInfinity : <System.Double>, read-only, static
  .PositiveInfinity : <System.Double>, read-only, static
true

展示DoyNetClass对象上是事件的方法

--方法格式:showEvents<dotNetClass> ["prop_pat"] [to:<stream>] [showStaticOnly:<bool>] [declaredOnTypeOnly:<bool>]

theClass = dotNetClass "System.Drawing.Size"--创建对象

showEvents theClass 

获得构造器的方法

方法格式:dotNet.showConstructors <dotNetClass> [to:<stream>]

theClass = dotNetClass "System.Drawing.Size"--创建对象
dotNet.showConstructors theClass

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表