Esempio n. 1
0
        public GrainTypeData(Type type, MultiClusterRegistrationStrategyManager registrationManager)
        {
            var typeInfo = type.GetTypeInfo();

            Type        = type;
            IsReentrant = typeInfo.GetCustomAttributes(typeof(ReentrantAttribute), true).Any();
            // TODO: shouldn't this use GrainInterfaceUtils.IsStatelessWorker?
            IsStatelessWorker                = typeInfo.GetCustomAttributes(typeof(StatelessWorkerAttribute), true).Any();
            GrainClass                       = TypeUtils.GetFullName(typeInfo);
            RemoteInterfaceTypes             = GetRemoteInterfaces(type);
            MayInterleave                    = GetMayInterleavePredicate(typeInfo) ?? (_ => false);
            MultiClusterRegistrationStrategy = registrationManager?.GetMultiClusterRegistrationStrategy(type);
        }