精华内容
下载资源
问答
  • Reflection

    2020-11-20 21:30:26
    <div><p>After deobfuscation I have a jar with a lot of reflection calls, is there a way to replace reflection calls with direct calls? ...
  • reflection

    2013-12-09 10:22:42
    java reflection 内容学习
  • Reflection-源码

    2021-03-30 07:47:56
    Reflection
  • Misc reflection

    2021-01-01 03:11:33
    s of small changes and fixes (mostly reflection). - Name for GenericParameter match .Net (both positional and type) - fix #509 - System.Reflection.Runtime* types added. - System.Reflection....
  • Support Reflection

    2020-12-06 06:56:27
    <div><p>Supporting reflection would allow service developers to test and experiment using tools like <code>grpcurl</code>. Other SDKs contain the the ability to register the reflection service ... is ...
  • Avoid reflection

    2020-12-08 23:07:53
    For this interface, AutoBundle use reflection at first time(only one time). But even if one time, should avoid reflection. Should use <code>FooActivityAutobundle.bind(Activity)</code> instead above....
  • Reflection bugs

    2020-11-30 20:43:37
    <div><p>Currently reflection on some <code>Ds\*</code> classes doesn't return the expected values which is causing issues with tools such as <a href="https://github.com/phpstan/phpstan">PHPStan...
  • Reflection serde

    2020-12-06 15:28:11
    <div><p>The patch adds dynamic resolution of the Avro schema when Reflection API is used. <p>It solves one of the limitations of the initial implementation of the feature. The change allows to use the...
  • Exploiting Reflection Change for Automatic Reflection Removal.去除像反光
  • Reflection.

    2020-12-04 11:44:35
    <div><p>After deobfuscation I have a jar with a lot of reflection calls, is there a way to replace reflection calls with direct calls? image I used zelix.ReflectionObfuscationTransformer OriginalFile...
  • Reflection caching

    2021-01-11 11:44:10
    <div><p>Reflection is slow, why isn't it internally cached by default?</p><p>该提问来源于开源项目:dotnet/runtime</p></div>
  • reflection codec

    2021-01-04 06:46:42
    <div><p>This patch provides a reflection based implementation of the OPC/UA binary protocol encoding scheme. <p>Fixes #115 </p><p>该提问来源于开源项目:gopcua/opcua</p></div>
  • Delegate reflection

    2021-01-01 03:12:41
    <div><p>Fixed problems with reflection in delegate types. Added correctly defined "Invoke" method. Fixed delegate base type. Fixed #499, #500.</p><p>该提问来源于开源项目:sq/JSIL</p></...
  • reflection ppt

    2013-09-22 09:26:54
    reflection的ppt介绍,当中包括大学课程reflection的详细讲解
  • Reflection API

    2021-01-05 20:34:55
    <div><p>We should implement https://github.com/grpc/grpc/blob/master/doc/server-reflection.md. This seems like a popular extension point/service.</p><p>该提问来源于开源项目:grpc/grpc-dotnet</p>...
  • 反射reflection

    2021-01-09 20:48:39
    反射reflection一、reflection是什么? 一、reflection是什么? 反射(reflection)是什么? 在《精通C#》中是这么说的“反射就是一个运行库发现的过程”。 举例来说,通过反射,可以得到一个给定的.dll或.exe程序...


    一、reflection是什么?

    反射(reflection)是什么?
    在《精通C#》中是这么说的“反射就是一个运行库发现的过程”。

    二、reflection获取信息

    举例来说,通过反射,可以得到一个给定的.dll或.exe程序集所包含的所有类型的列表,这个列表包括给定类型定义的方法、字段、属性和事件。

    namespace _01程序集的引用
    {
        class Program
        {
            static void Main(string[] args)
            {
                #region 加载程序集
                //获取基目录(也就是bin\deBug的绝对路径)
                string deBuyPath = AppDomain.CurrentDomain.BaseDirectory;
     
                //获取DeBug中的dll文件的绝对路径(通过类库项目生成的,我自己复制到那里的)
                //using System.IO;
                string dllPath = Path.Combine(deBuyPath, "ClassLibrary1.dll");
     
                //加载程序集文件(using System.Reflection;)
                Assembly ass = Assembly.LoadFile(dllPath); 
                #endregion
     
     
                Console.WriteLine("获取程序集中所有定义的类的类名,包括internal和public");
                Type[] allTypes = ass.GetTypes();
                foreach (Type item in allTypes)
                {
                    Console.WriteLine($"程序集ClassLibrary1.dll中有类:{item.Name }");
                }
     
     
                //获取程序集中指定的类的类型
                Type p = ass.GetType("ClassLibrary1.Person");
                Console.WriteLine($"获取指定的类,类名{p.Name},类的命名空间{p.Namespace}");
     
     
                //获取所有程序集dll文件中定义的公共类型的类型(公共类)
                Type[] publicTypes = ass.GetExportedTypes();
     
     
                Console.ReadKey();
     
            }
        }
    }
     
    

    运行结果
    -----------获取程序集中所有定义的类的类名,包括internal和public---------
    程序集ClassLibrary1.dll中有类:Person
    程序集ClassLibrary1.dll中有类:Student
    程序集ClassLibrary1.dll中有类:Teacher
    -----------获取程序集中指定的类的类型---------
    获取指定的类,类名Person,类的命名空间ClassLibrary1
    -----------获取程序集中公共类---------
    程序集ClassLibrary1.dll中的公共类有:Person
    程序集ClassLibrary1.dll中的公共类有:Student

    namespace _02程序集的引用2
    {
        class Program
        {
            static void Main(string[] args)
            {
                //查询变量的类型
     
                //法1:已经声明了一个变量
                string str = "abcd";
                Type t1 = str.GetType();
                Console.WriteLine(t1);
     
                //法2:直接使用变量类型查询
                Type t2 = typeof(string);
                Console.WriteLine(t2);
     
                //法3:直接使用Type.GetType()静态方法
                Type t3 = Type.GetType("System.String");
                Console.WriteLine(t3);
     
                //我们可以获得string的类型名,我们可以使用类型对象来探测string类型的内部结构
                foreach (MemberInfo item in t1.GetMembers ())
                {
                    Console.WriteLine($"当前类型的公共成员类型{item.MemberType},成员名{item.Name }");
                }
     
     
                Console.ReadKey();
     
            }
        }
    }
    

    三、reflection去创建对象

    我们知道了类库中的各个成员的的类型,那么我们怎么才能新建一个该类型的对象呢(这就是晚期加载)
    注意啊,上面我们只是获得了各个类的类型(类名),并没有真正的获得这个类名这个变量
    所以我们无法使用类名这个变量去new一个对象
    建立程序集中类的对象

     
                //建立程序集中类的对象
                object person = Activator.CreateInstance(p, 24, "志铭", "男");
     
     
                #region 获取类型的属性
                //获取该对象的属性列表
                Console.WriteLine("--------获取该对象的属性列表---------");
                PropertyInfo[] pros = person.GetType().GetProperties();
                foreach (PropertyInfo item in pros)
                {
                    Console.WriteLine(item.Name);
                }
     
                //获得指定名称的属性
                PropertyInfo pro = p.GetProperty("Name");
                //获得对象person的指定的属性的值
                string name = (string)pro.GetValue(person, null);
                Console.WriteLine(name);
                #endregion
     
     
                #region 获取类型的方法列表
                Console.WriteLine("-------获取类型的方法列表--------------");
                MethodInfo[] methods = person.GetType().GetMethods();
                foreach (MethodInfo item in methods)
                {
                    Console.WriteLine(item.Name);
                }
     
                //调用指定名称的方法
                MethodInfo method = person.GetType().GetMethod("Say");
                method.Invoke(person, null);
                #endregion
     
                //获取字段列表(注意你只能获取公共类型的字段)
                FieldInfo[] fields = person.GetType().GetFields();
                foreach (FieldInfo item in fields)
                {
                    Console.WriteLine(item.Name);
                }
                
                Console.ReadKey();
    
    展开全文
  • Reflection probes

    2019-09-03 12:10:21
    Reflection probes: Reflection probes就是得到一个点的反射贴图,它由一张cubemap组成,包括六个方向,包含了它此时反射的环境. 每一个点都可以有一个reflection probes 来反映他此时的反射环境 reflection ...

    Reflection probes:

    Reflection probes就是得到一个点的反射贴图,它由一张cubemap组成,包括六个方向,包含了它此时反射的环境.

     每一个点都可以有一个reflection probes  来反映他此时的反射环境

    reflection probes捕获的反射只能包括标记为Reflection Probe Static的场景对象

    Using Reflection Probes

    • 创建一个空物体A,添加reflection probe 组件
    • 创建多个新的reflection probe 物体,和上面的流程一个
    • 设置reflection probe组件参数
    • 继续添加reflection probe 物体直到满足需要

    下面是为了看到reflection probe

    • 创建一个cube 或其他物体B
    • 为其附上一个材质球,把 MetallicSmoothness 设置为 1.0.

    把需要反射的物体C,勾选上reflection probe static ,然后烘焙,就能在物体B上看到反射的C了

    Blending

     要使用reflection probe 首先要在edit->projectsetting ->graphic->tier setting 里面启用reflection probe blending ,启用之后物体从一个reflection 区域到另一个区域就会有过度,而不是很突兀的突然出现

    Reflection Probes 属性通过 Mesh Renderer 组件来控制

    • Off - 关闭reflection probe 该物体不使用反射
    • Blend Probes 不反射天空,要把它用在山洞或者隧道里面
    • Blend Probes and Skybox -反射天空,用在户外
    • Simple -当两个reflection probe 重叠时,不使用反射

    如果一个物体横跨两个probe ,那么在哪个reflection 区域的体积大,就按哪个reflection 来计算

    当一个探针包含另一个探针时,如果物体完全在小探针里面,则就完全按照小探针计算,如果在两者中间,则按照体积比例来计算

    Interreflections

    互反射,经常的作用是两面镜子能够互相看到对方反射到的物体和镜子里面互相反射的物体,它是在lighting window 里控制的,Environment > Environment Reflections编辑 Bounces 属性,1代表互相反射的物体是黑色的,2代表能够看到两层的物体,依次类推,没一层都代表一个烘焙,所以次数越多,烘焙越多,互相反射的物体也要勾选reflection probe static

     

    Box projection

    盒映射:如果静态物体里反射体太近的话,物体就会被变得很大,这样就很不真实,比如你靠近一面镜子,镜子里面的你很大,开启box projection 能够解决这种情况,让反射效果变得更加真实一些

     

    Reflection probe performance and optimisation

     反射探针的性能优化和表现形式:反射探针的六个方向都需要摄像机单独呈现,每一个bounce都需要单独呈现,所以这很耗费时间

    优化方式:1.降低resolution

                      2.为不需要反射的物体归类到一层中,用cullmask 剔除掉

                      3.压缩贴图,Window > Rendering->Lighting Settings  Environmental Lighting > Reflections s使用压缩,注意,realtime 模式是不支持压缩的,这也是实时烘焙比较耗时间,实时的设置依靠组件中的HDR和Resolution来确定

                     

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,679
精华内容 12,271
关键字:

reflection